diff --git a/.changes/05ac561b-963f-4953-bb4f-1fc19fc1207c.json b/.changes/05ac561b-963f-4953-bb4f-1fc19fc1207c.json deleted file mode 100644 index 9465e61b9fe..00000000000 --- a/.changes/05ac561b-963f-4953-bb4f-1fc19fc1207c.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "05ac561b-963f-4953-bb4f-1fc19fc1207c", - "type": "feature", - "description": "Add `regionProvider` property to client config", - "issues": [ - "awslabs/aws-sdk-kotlin#1478" - ] -} \ No newline at end of file diff --git a/.changes/49af01b8-6fed-4add-ace0-9f027e83425a.json b/.changes/49af01b8-6fed-4add-ace0-9f027e83425a.json deleted file mode 100644 index 266a5b1a56f..00000000000 --- a/.changes/49af01b8-6fed-4add-ace0-9f027e83425a.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "49af01b8-6fed-4add-ace0-9f027e83425a", - "type": "feature", - "description": "⚠️ **IMPORTANT**: Refactor endpoint discoverer classes into interfaces so custom implementations may be provided", - "issues": [ - "awslabs/aws-sdk-kotlin#1413" - ], - "requiresMinorVersionBump": true -} diff --git a/.changes/929f0e2a-3af9-4f73-9f1b-b4e97f91f0db.json b/.changes/929f0e2a-3af9-4f73-9f1b-b4e97f91f0db.json deleted file mode 100644 index 9feae07878c..00000000000 --- a/.changes/929f0e2a-3af9-4f73-9f1b-b4e97f91f0db.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "929f0e2a-3af9-4f73-9f1b-b4e97f91f0db", - "type": "feature", - "description": "⚠️ **IMPORTANT**: Add support for enabling/disabling endpoint discovery via [standard cross-SDK config mechanisms](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoint-discovery.html)", - "issues": [ - "awslabs/aws-sdk-kotlin#1413" - ], - "requiresMinorVersionBump": true -} \ No newline at end of file diff --git a/.changes/e6515649-dab5-4be9-b4b4-b289369960d5.json b/.changes/e6515649-dab5-4be9-b4b4-b289369960d5.json deleted file mode 100644 index a4485b5bf80..00000000000 --- a/.changes/e6515649-dab5-4be9-b4b4-b289369960d5.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "e6515649-dab5-4be9-b4b4-b289369960d5", - "type": "bugfix", - "description": "Favor `endpointUrl` instead of endpoint discovery if both are provided", - "issues": [ - "awslabs/aws-sdk-kotlin#1413" - ] -} \ No newline at end of file diff --git a/.changes/f56de67b-6779-4296-a7d0-dcdefa0d4acd.json b/.changes/f56de67b-6779-4296-a7d0-dcdefa0d4acd.json deleted file mode 100644 index 65d704fc53c..00000000000 --- a/.changes/f56de67b-6779-4296-a7d0-dcdefa0d4acd.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "id": "f56de67b-6779-4296-a7d0-dcdefa0d4acd", - "type": "feature", - "description": "Upgrade to Kotlin 2.2.0" -} \ No newline at end of file diff --git a/.github/workflows/merge-main.yml b/.github/workflows/merge-main.yml index 8924b931f74..d73d47a838a 100644 --- a/.github/workflows/merge-main.yml +++ b/.github/workflows/merge-main.yml @@ -14,4 +14,4 @@ jobs: uses: awslabs/aws-kotlin-repo-tools/.github/actions/merge-main@main with: ci-user-pat: ${{ secrets.CI_USER_PAT }} - exempt-branches: # Add any if required + exempt-branches: # Add any if required \ No newline at end of file diff --git a/.github/workflows/sync-mirror.yml b/.github/workflows/sync-mirror.yml index bc806b75fef..606a87e7039 100644 --- a/.github/workflows/sync-mirror.yml +++ b/.github/workflows/sync-mirror.yml @@ -19,4 +19,4 @@ jobs: source_repo: "https://aws-sdk-kotlin-ci:${{ secrets.CI_USER_PAT }}@github.com/awslabs/aws-sdk-kotlin.git" source_branch: "main" destination_repo: "https://aws-sdk-kotlin-ci:${{ secrets.CI_USER_PAT }}@github.com/awslabs/private-aws-sdk-kotlin-staging.git" - destination_branch: "main" + destination_branch: "main" \ No newline at end of file diff --git a/aws-runtime/aws-config/api/aws-config.api b/aws-runtime/aws-config/api/aws-config.api index 723bdc371fe..eec0b5f660d 100644 --- a/aws-runtime/aws-config/api/aws-config.api +++ b/aws-runtime/aws-config/api/aws-config.api @@ -246,27 +246,6 @@ public abstract class aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactory public static synthetic fun fromEnvironment$default (Laws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactory;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } -public abstract interface class aws/sdk/kotlin/runtime/config/AwsSdkClientConfig : aws/smithy/kotlin/runtime/client/SdkClientConfig { - public abstract fun getApplicationId ()Ljava/lang/String; - public abstract fun getRegion ()Ljava/lang/String; - public abstract fun getRegionProvider ()Laws/smithy/kotlin/runtime/client/region/RegionProvider; - public abstract fun getUseDualStack ()Z - public abstract fun getUseFips ()Z -} - -public abstract interface class aws/sdk/kotlin/runtime/config/AwsSdkClientConfig$Builder { - public abstract fun getApplicationId ()Ljava/lang/String; - public abstract fun getRegion ()Ljava/lang/String; - public abstract fun getRegionProvider ()Laws/smithy/kotlin/runtime/client/region/RegionProvider; - public abstract fun getUseDualStack ()Ljava/lang/Boolean; - public abstract fun getUseFips ()Ljava/lang/Boolean; - public abstract fun setApplicationId (Ljava/lang/String;)V - public abstract fun setRegion (Ljava/lang/String;)V - public abstract fun setRegionProvider (Laws/smithy/kotlin/runtime/client/region/RegionProvider;)V - public abstract fun setUseDualStack (Ljava/lang/Boolean;)V - public abstract fun setUseFips (Ljava/lang/Boolean;)V -} - public final class aws/sdk/kotlin/runtime/config/AwsSdkSetting { public static final field INSTANCE Laws/sdk/kotlin/runtime/config/AwsSdkSetting; public final fun getAwsAccessKeyId ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting; @@ -284,7 +263,6 @@ public final class aws/sdk/kotlin/runtime/config/AwsSdkSetting { public final fun getAwsEc2MetadataDisabled ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting; public final fun getAwsEc2MetadataServiceEndpoint ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting; public final fun getAwsEc2MetadataServiceEndpointMode ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting; - public final fun getAwsEndpointDiscoveryEnabled ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting; public final fun getAwsEndpointUrl ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting; public final fun getAwsExecutionEnv ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting; public final fun getAwsIgnoreEndpointUrls ()Laws/smithy/kotlin/runtime/config/EnvironmentSetting; @@ -346,8 +324,6 @@ public final class aws/sdk/kotlin/runtime/config/endpoints/ResolversKt { public static final fun resolveAccountId (Laws/sdk/kotlin/runtime/config/endpoints/AccountIdEndpointMode;Laws/smithy/kotlin/runtime/collections/Attributes;)Ljava/lang/String; public static final fun resolveAccountIdEndpointMode (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun resolveAccountIdEndpointMode$default (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public static final fun resolveEndpointDiscoveryEnabled (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun resolveEndpointDiscoveryEnabled$default (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;ZLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun resolveEndpointUrl (Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Laws/smithy/kotlin/runtime/util/PlatformProvider;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun resolveEndpointUrl$default (Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Laws/smithy/kotlin/runtime/util/PlatformProvider;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public static final fun resolveUseDualStack (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -537,7 +513,8 @@ public final class aws/sdk/kotlin/runtime/config/profile/AwsProfileKt { public static synthetic fun getBooleanOrNull$default (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/lang/Boolean; public static final fun getCredentialProcess (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/String; public static final fun getDisableRequestCompression (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/Boolean; - public static final fun getEndpointDiscoveryEnabled (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/Boolean; + public static final fun getEc2InstanceProfileName (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/String; + public static final fun getEc2MetadataDisabled (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/Boolean; public static final fun getEndpointUrl (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Laws/smithy/kotlin/runtime/net/url/Url; public static final fun getIgnoreEndpointUrls (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;)Ljava/lang/Boolean; public static final fun getIntOrNull (Laws/sdk/kotlin/runtime/config/profile/ConfigSection;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Integer; @@ -593,21 +570,21 @@ public final class aws/sdk/kotlin/runtime/config/useragent/ResolveUserAgentKt { public static synthetic fun resolveUserAgentAppId$default (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; } -public final class aws/sdk/kotlin/runtime/region/DefaultRegionProviderChain : aws/smithy/kotlin/runtime/client/region/RegionProviderChain, aws/smithy/kotlin/runtime/client/region/RegionProvider, java/io/Closeable { +public final class aws/sdk/kotlin/runtime/region/DefaultRegionProviderChain : aws/sdk/kotlin/runtime/region/RegionProviderChain, aws/sdk/kotlin/runtime/region/RegionProvider, java/io/Closeable { public fun ()V public fun (Laws/smithy/kotlin/runtime/util/PlatformProvider;Lkotlin/Lazy;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;)V public synthetic fun (Laws/smithy/kotlin/runtime/util/PlatformProvider;Lkotlin/Lazy;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public fun close ()V } -public final class aws/sdk/kotlin/runtime/region/EnvironmentRegionProvider : aws/smithy/kotlin/runtime/client/region/RegionProvider { +public final class aws/sdk/kotlin/runtime/region/EnvironmentRegionProvider : aws/sdk/kotlin/runtime/region/RegionProvider { public fun ()V public fun (Laws/smithy/kotlin/runtime/util/EnvironmentProvider;)V public synthetic fun (Laws/smithy/kotlin/runtime/util/EnvironmentProvider;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public fun getRegion (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } -public final class aws/sdk/kotlin/runtime/region/ImdsRegionProvider : aws/smithy/kotlin/runtime/client/region/RegionProvider, java/io/Closeable { +public final class aws/sdk/kotlin/runtime/region/ImdsRegionProvider : aws/sdk/kotlin/runtime/region/RegionProvider, java/io/Closeable { public fun ()V public fun (Lkotlin/Lazy;Laws/smithy/kotlin/runtime/util/PlatformEnvironProvider;)V public synthetic fun (Lkotlin/Lazy;Laws/smithy/kotlin/runtime/util/PlatformEnvironProvider;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -615,14 +592,14 @@ public final class aws/sdk/kotlin/runtime/region/ImdsRegionProvider : aws/smithy public fun getRegion (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } -public final class aws/sdk/kotlin/runtime/region/JvmSystemPropRegionProvider : aws/smithy/kotlin/runtime/client/region/RegionProvider { +public final class aws/sdk/kotlin/runtime/region/JvmSystemPropRegionProvider : aws/sdk/kotlin/runtime/region/RegionProvider { public fun ()V public fun (Laws/smithy/kotlin/runtime/util/PropertyProvider;)V public synthetic fun (Laws/smithy/kotlin/runtime/util/PropertyProvider;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public fun getRegion (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } -public final class aws/sdk/kotlin/runtime/region/ProfileRegionProvider : aws/smithy/kotlin/runtime/client/region/RegionProvider { +public final class aws/sdk/kotlin/runtime/region/ProfileRegionProvider : aws/sdk/kotlin/runtime/region/RegionProvider { public fun ()V public fun (Laws/smithy/kotlin/runtime/util/LazyAsyncValue;)V public synthetic fun (Laws/smithy/kotlin/runtime/util/LazyAsyncValue;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -630,6 +607,18 @@ public final class aws/sdk/kotlin/runtime/region/ProfileRegionProvider : aws/smi public fun getRegion (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } +public abstract interface class aws/sdk/kotlin/runtime/region/RegionProvider { + public abstract fun getRegion (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public class aws/sdk/kotlin/runtime/region/RegionProviderChain : aws/sdk/kotlin/runtime/region/RegionProvider { + public fun (Ljava/util/List;)V + public fun ([Laws/sdk/kotlin/runtime/region/RegionProvider;)V + protected final fun getProviders ()[Laws/sdk/kotlin/runtime/region/RegionProvider; + public fun getRegion (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun toString ()Ljava/lang/String; +} + public final class aws/sdk/kotlin/runtime/region/ResolveRegionKt { public static final fun resolveRegion (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun resolveRegion$default (Laws/smithy/kotlin/runtime/util/PlatformProvider;Laws/smithy/kotlin/runtime/util/LazyAsyncValue;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/EcsCredentialsProvider.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/EcsCredentialsProvider.kt index cc2f5ccc9e5..40e707968ac 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/EcsCredentialsProvider.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/EcsCredentialsProvider.kt @@ -87,8 +87,8 @@ public class EcsCredentialsProvider( } val op = SdkHttpOperation.build { - serializeWith = EcsCredentialsSerializer(authToken) - deserializeWith = EcsCredentialsDeserializer() + serializer = EcsCredentialsSerializer(authToken) + deserializer = EcsCredentialsDeserializer() operationName = "EcsCredentialsProvider" serviceName = "EcsContainerMetadata" execution.endpointResolver = EndpointResolver { Endpoint(url) } @@ -196,14 +196,14 @@ public class EcsCredentialsProvider( override fun toString(): String = this.simpleClassName } -private class EcsCredentialsDeserializer : HttpDeserializer.NonStreaming { - override fun deserialize(context: ExecutionContext, call: HttpCall, payload: ByteArray?): Credentials { +private class EcsCredentialsDeserializer : HttpDeserialize { + override suspend fun deserialize(context: ExecutionContext, call: HttpCall): Credentials { val response = call.response if (!response.status.isSuccess()) { - throwCredentialsResponseException(response, payload) + throwCredentialsResponseException(response) } - if (payload == null) throw CredentialsProviderException("HTTP credentials response did not contain a payload") + val payload = response.body.readAll() ?: throw CredentialsProviderException("HTTP credentials response did not contain a payload") val deserializer = JsonDeserializer(payload) val resp = deserializeJsonCredentials(deserializer) if (resp !is JsonCredentialsResponse.SessionCredentials) { @@ -221,8 +221,8 @@ private class EcsCredentialsDeserializer : HttpDeserializer.NonStreaming { - override fun serialize(context: ExecutionContext, input: Unit): HttpRequestBuilder { +) : HttpSerialize { + override suspend fun serialize(context: ExecutionContext, input: Unit): HttpRequestBuilder { val builder = HttpRequestBuilder() builder.url.path builder.header("Accept", "application/json") diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/JsonCredentialsDeserializer.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/JsonCredentialsDeserializer.kt index 51eace3bb53..21dc4ed3b4e 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/JsonCredentialsDeserializer.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/JsonCredentialsDeserializer.kt @@ -74,7 +74,7 @@ internal sealed class JsonCredentialsResponse { * ``` */ @Suppress("ktlint:standard:property-naming") -internal fun deserializeJsonCredentials(deserializer: Deserializer): JsonCredentialsResponse { +internal suspend fun deserializeJsonCredentials(deserializer: Deserializer): JsonCredentialsResponse { val CODE_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("Code")) val ACCESS_KEY_ID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("AccessKeyId")) val SECRET_ACCESS_KEY_ID_DESCRIPTOR = SdkFieldDescriptor(SerialKind.String, JsonSerialName("SecretAccessKey")) diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactory.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactory.kt index ae6c666a45e..2edc6dcbb88 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactory.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactory.kt @@ -5,6 +5,7 @@ package aws.sdk.kotlin.runtime.config +import aws.sdk.kotlin.runtime.client.AwsSdkClientConfig import aws.sdk.kotlin.runtime.config.auth.resolveAuthSchemePreference import aws.sdk.kotlin.runtime.config.checksums.resolveRequestChecksumCalculation import aws.sdk.kotlin.runtime.config.checksums.resolveResponseChecksumValidation @@ -21,10 +22,7 @@ import aws.sdk.kotlin.runtime.region.resolveRegion import aws.sdk.kotlin.runtime.region.resolveSigV4aSigningRegionSet import aws.smithy.kotlin.runtime.ExperimentalApi import aws.smithy.kotlin.runtime.auth.awscredentials.SigV4aClientConfig -import aws.smithy.kotlin.runtime.client.AbstractSdkClientFactory -import aws.smithy.kotlin.runtime.client.RetryStrategyClientConfig -import aws.smithy.kotlin.runtime.client.SdkClient -import aws.smithy.kotlin.runtime.client.SdkClientConfig +import aws.smithy.kotlin.runtime.client.* import aws.smithy.kotlin.runtime.client.config.ClientSettings import aws.smithy.kotlin.runtime.client.config.CompressionClientConfig import aws.smithy.kotlin.runtime.client.config.HttpChecksumConfig @@ -81,7 +79,7 @@ public abstract class AbstractAwsSdkClientFactory< block?.let(config::apply) config.logMode = config.logMode ?: ClientSettings.LogMode.resolve(platform = platform) - config.region = config.region ?: config.regionProvider?.getRegion() ?: resolveRegion(profile = profile) + config.region = config.region ?: resolveRegion(profile = profile) config.useFips = config.useFips ?: resolveUseFips(profile = profile) config.useDualStack = config.useDualStack ?: resolveUseDualStack(profile = profile) config.applicationId = config.applicationId ?: resolveUserAgentAppId(platform, profile) diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsSdkSetting.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsSdkSetting.kt index dd8a0240058..2f86a889006 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsSdkSetting.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsSdkSetting.kt @@ -219,15 +219,6 @@ public object AwsSdkSetting { public val AwsSigV4aSigningRegionSet: EnvironmentSetting = strEnvSetting("aws.sigV4aSigningRegionSet", "AWS_SIGV4A_SIGNING_REGION_SET") - /** - * A flag indicating whether endpoint discovery is enabled for AWS services that support it. The implicit default - * value for this setting is: - * * `true` for services which _require_ EP discovery (e.g., Timestream) - * * `false` for services which _allow but do not require_ EP discovery (e.g., DynamoDB) - */ - public val AwsEndpointDiscoveryEnabled: EnvironmentSetting = - boolEnvSetting("aws.endpointDiscoveryEnabled", "AWS_ENABLE_ENDPOINT_DISCOVERY") - /** * Configures request checksum calculation */ diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/endpoints/Resolvers.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/endpoints/Resolvers.kt index 590eb8ca3d7..20bc6e974eb 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/endpoints/Resolvers.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/endpoints/Resolvers.kt @@ -101,16 +101,3 @@ public fun resolveAccountId(endpointMode: AccountIdEndpointMode, attributes: Att AccountIdEndpointMode.DISABLED -> null AccountIdEndpointMode.REQUIRED -> attributes.getOrNull(AwsClientOption.AccountId) ?: throw ConfigurationException("AccountIdEndpointMode is set to required but no AWS account ID found") } - -/** - * Resolve the endpoint discovery mode - */ -@InternalSdkApi -public suspend fun resolveEndpointDiscoveryEnabled( - provider: PlatformProvider = PlatformProvider.System, - profile: LazyAsyncValue = asyncLazy { loadAwsSharedConfig(provider).activeProfile }, - serviceRequiresEpDiscovery: Boolean, -): Boolean = - AwsSdkSetting.AwsEndpointDiscoveryEnabled.resolve(provider) - ?: profile.get().endpointDiscoveryEnabled - ?: serviceRequiresEpDiscovery diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsClient.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsClient.kt index ac4cbf9549b..58b9126930e 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsClient.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsClient.kt @@ -12,13 +12,10 @@ import aws.sdk.kotlin.runtime.http.middleware.UserAgent import aws.smithy.kotlin.runtime.client.LogMode import aws.smithy.kotlin.runtime.client.SdkClientOption import aws.smithy.kotlin.runtime.client.endpoints.Endpoint -import aws.smithy.kotlin.runtime.http.HttpCall -import aws.smithy.kotlin.runtime.http.HttpStatusCode -import aws.smithy.kotlin.runtime.http.SdkHttpClient +import aws.smithy.kotlin.runtime.http.* import aws.smithy.kotlin.runtime.http.engine.DefaultHttpEngine import aws.smithy.kotlin.runtime.http.engine.HttpClientEngine import aws.smithy.kotlin.runtime.http.engine.ProxySelector -import aws.smithy.kotlin.runtime.http.isSuccess import aws.smithy.kotlin.runtime.http.operation.* import aws.smithy.kotlin.runtime.io.Closeable import aws.smithy.kotlin.runtime.io.closeIfCloseable @@ -112,12 +109,13 @@ public class ImdsClient private constructor(builder: Builder) : InstanceMetadata */ public override suspend fun get(path: String): String { val op = SdkHttpOperation.build { - serializeWith = HttpSerializer.Unit - deserializeWith = object : HttpDeserializer.NonStreaming { - override fun deserialize(context: ExecutionContext, call: HttpCall, payload: ByteArray?): String { + serializer = UnitSerializer + deserializer = object : HttpDeserialize { + override suspend fun deserialize(context: ExecutionContext, call: HttpCall): String { val response = call.response if (response.status.isSuccess()) { - return payload!!.decodeToString() + val payload = response.body.readAll() ?: throw EC2MetadataError(response.status, "no metadata payload") + return payload.decodeToString() } else { throw EC2MetadataError(response.status, "error retrieving instance metadata: ${response.status.description}") } @@ -234,9 +232,9 @@ public enum class EndpointMode(internal val defaultEndpoint: Endpoint) { * @param message The error message */ public class EC2MetadataError(public val status: HttpStatusCode, message: String) : AwsServiceException(message) { - @Deprecated("This constructor passes HTTP status as an Int instead of as HttpStatusCode. This declaration will be removed in version 1.6.x.") + @Deprecated("This constructor passes HTTP status as an Int instead of as HttpStatusCode") public constructor(statusCode: Int, message: String) : this(HttpStatusCode.fromValue(statusCode), message) - @Deprecated("This property is now deprecated and should be fetched from status.value. This declaration will be removed in version 1.6.x.") + @Deprecated("This property is now deprecated and should be fetched from status.value") public val statusCode: Int = status.value } diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsResolvers.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsResolvers.kt index 89c7d8c4729..52a30fbad09 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsResolvers.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/imds/ImdsResolvers.kt @@ -3,6 +3,8 @@ package aws.sdk.kotlin.runtime.config.imds import aws.sdk.kotlin.runtime.InternalSdkApi import aws.sdk.kotlin.runtime.config.AwsSdkSetting import aws.sdk.kotlin.runtime.config.profile.AwsProfile +import aws.sdk.kotlin.runtime.config.profile.ec2InstanceProfileName +import aws.sdk.kotlin.runtime.config.profile.ec2MetadataDisabled import aws.sdk.kotlin.runtime.config.profile.loadAwsSharedConfig import aws.smithy.kotlin.runtime.config.resolve import aws.smithy.kotlin.runtime.util.LazyAsyncValue @@ -16,7 +18,7 @@ import aws.smithy.kotlin.runtime.util.asyncLazy public suspend fun resolveEc2InstanceProfileName( provider: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue = asyncLazy { loadAwsSharedConfig(provider).activeProfile }, -): String? = AwsSdkSetting.AwsEc2InstanceProfileName.resolve(provider) +): String? = AwsSdkSetting.AwsEc2InstanceProfileName.resolve(provider) ?: profile.get().ec2InstanceProfileName /** * Attempts to resolve the flag which disables the use of IMDS for credentials @@ -24,4 +26,4 @@ public suspend fun resolveEc2InstanceProfileName( public suspend fun resolveDisableEc2Metadata( provider: PlatformProvider = PlatformProvider.System, profile: LazyAsyncValue = asyncLazy { loadAwsSharedConfig(provider).activeProfile }, -): Boolean? = AwsSdkSetting.AwsEc2MetadataDisabled.resolve(provider) +): Boolean? = AwsSdkSetting.AwsEc2MetadataDisabled.resolve(provider) ?: profile.get().ec2MetadataDisabled diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/profile/AwsProfile.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/profile/AwsProfile.kt index 3ec07b3a795..cda2bc11deb 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/profile/AwsProfile.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/profile/AwsProfile.kt @@ -156,14 +156,6 @@ public val AwsProfile.requestMinCompressionSizeBytes: Long? public val AwsProfile.sigV4aSigningRegionSet: String? get() = getOrNull("sigv4a_signing_region_set") -/** - * A flag indicating whether endpoint discovery should be enabled for a service that supports it. This setting has no - * effect for services which _do not_ support endpoint discovery. - */ -@InternalSdkApi -public val AwsProfile.endpointDiscoveryEnabled: Boolean? - get() = getBooleanOrNull("endpoint_discovery_enabled") - /** * Configures request checksum calculation */ @@ -185,6 +177,20 @@ public val AwsProfile.responseChecksumValidation: ResponseHttpChecksumConfig? public val AwsProfile.authSchemePreference: String? get() = getOrNull("auth_scheme_preference") +/** + * Specifies a named EC2 instance profile to use which allows bypassing auto-discovery + */ +@InternalSdkApi +public val AwsProfile.ec2InstanceProfileName: String? + get() = getOrNull("ec2_instance_profile_name") + +/** + * The flag which disables the use of IMDS for credentials + */ +@InternalSdkApi +public val AwsProfile.ec2MetadataDisabled: Boolean? + get() = getBooleanOrNull("disable_ec2_metadata") + /** * Parse a config value as a boolean, ignoring case. */ diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChain.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChain.kt index 5ac84815606..25d59284b6c 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChain.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChain.kt @@ -9,7 +9,6 @@ import aws.sdk.kotlin.runtime.config.imds.ImdsClient import aws.sdk.kotlin.runtime.config.imds.InstanceMetadataProvider import aws.sdk.kotlin.runtime.config.profile.AwsProfile import aws.sdk.kotlin.runtime.config.profile.loadAwsSharedConfig -import aws.smithy.kotlin.runtime.client.region.RegionProvider import aws.smithy.kotlin.runtime.io.Closeable import aws.smithy.kotlin.runtime.util.LazyAsyncValue import aws.smithy.kotlin.runtime.util.PlatformProvider diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/EnvironmentRegionProvider.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/EnvironmentRegionProvider.kt index 126083ebf4e..c1058296510 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/EnvironmentRegionProvider.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/EnvironmentRegionProvider.kt @@ -6,7 +6,6 @@ package aws.sdk.kotlin.runtime.region import aws.sdk.kotlin.runtime.config.AwsSdkSetting -import aws.smithy.kotlin.runtime.client.region.RegionProvider import aws.smithy.kotlin.runtime.util.EnvironmentProvider import aws.smithy.kotlin.runtime.util.PlatformProvider diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/ImdsRegionProvider.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/ImdsRegionProvider.kt index 9191b9957df..6b488006617 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/ImdsRegionProvider.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/ImdsRegionProvider.kt @@ -8,7 +8,6 @@ package aws.sdk.kotlin.runtime.region import aws.sdk.kotlin.runtime.config.AwsSdkSetting import aws.sdk.kotlin.runtime.config.imds.ImdsClient import aws.sdk.kotlin.runtime.config.imds.InstanceMetadataProvider -import aws.smithy.kotlin.runtime.client.region.RegionProvider import aws.smithy.kotlin.runtime.config.resolve import aws.smithy.kotlin.runtime.io.Closeable import aws.smithy.kotlin.runtime.util.PlatformEnvironProvider diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/ProfileRegionProvider.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/ProfileRegionProvider.kt index c1b4491354b..9e50d845d7b 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/ProfileRegionProvider.kt +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/ProfileRegionProvider.kt @@ -8,7 +8,6 @@ package aws.sdk.kotlin.runtime.region import aws.sdk.kotlin.runtime.config.profile.AwsProfile import aws.sdk.kotlin.runtime.config.profile.loadAwsSharedConfig import aws.sdk.kotlin.runtime.config.profile.region -import aws.smithy.kotlin.runtime.client.region.RegionProvider import aws.smithy.kotlin.runtime.util.LazyAsyncValue import aws.smithy.kotlin.runtime.util.PlatformProvider import aws.smithy.kotlin.runtime.util.asyncLazy diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/RegionProvider.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/RegionProvider.kt new file mode 100644 index 00000000000..63105bdf3c9 --- /dev/null +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/RegionProvider.kt @@ -0,0 +1,17 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +package aws.sdk.kotlin.runtime.region + +/** + * Interface for providing AWS region information. Implementations are free to use any strategy for + * providing region information + */ +public interface RegionProvider { + /** + * Return the region name to use. If region information is not available, implementations should return null + */ + public suspend fun getRegion(): String? +} diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/RegionProviderChain.kt b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/RegionProviderChain.kt new file mode 100644 index 00000000000..4f7c4ce3012 --- /dev/null +++ b/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/region/RegionProviderChain.kt @@ -0,0 +1,52 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +package aws.sdk.kotlin.runtime.region + +import aws.smithy.kotlin.runtime.telemetry.logging.logger +import aws.smithy.kotlin.runtime.util.asyncLazy +import kotlin.coroutines.coroutineContext + +/** + * Composite [RegionProvider] that delegates to a chain of providers. + * [providers] are consulted in the order given and the first region found is returned + * + * @param providers the list of providers to delegate to + */ +public open class RegionProviderChain( + protected vararg val providers: RegionProvider, +) : RegionProvider { + + public constructor(providers: List) : this(*providers.toTypedArray()) + + private val resolvedRegion = asyncLazy(::resolveRegion) + + init { + require(providers.isNotEmpty()) { "at least one provider must be in the chain" } + } + + override fun toString(): String = + (listOf(this) + providers).map { it::class.simpleName }.joinToString(" -> ") + + override suspend fun getRegion(): String? = resolvedRegion.get() + + private suspend fun resolveRegion(): String? { + val logger = coroutineContext.logger() + for (provider in providers) { + try { + val region = provider.getRegion() + if (region != null) { + logger.debug { "resolved region ($region) from $provider " } + return region + } + logger.debug { "failed to resolve region from $provider" } + } catch (ex: Exception) { + logger.debug { "unable to load region from $provider: ${ex.message}" } + } + } + + return null + } +} diff --git a/aws-runtime/aws-config/common/test/aws/sdk/kotlin/runtime/config/endpoints/ResolveEndpointDiscoveryTest.kt b/aws-runtime/aws-config/common/test/aws/sdk/kotlin/runtime/config/endpoints/ResolveEndpointDiscoveryTest.kt deleted file mode 100644 index f54a4e54691..00000000000 --- a/aws-runtime/aws-config/common/test/aws/sdk/kotlin/runtime/config/endpoints/ResolveEndpointDiscoveryTest.kt +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ -package aws.sdk.kotlin.runtime.config.endpoints - -import aws.sdk.kotlin.runtime.config.profile.* -import aws.sdk.kotlin.runtime.config.profile.FileType -import aws.sdk.kotlin.runtime.config.profile.parse -import aws.sdk.kotlin.runtime.config.profile.toSharedConfig -import aws.smithy.kotlin.runtime.telemetry.logging.Logger -import aws.smithy.kotlin.runtime.util.TestPlatformProvider -import aws.smithy.kotlin.runtime.util.asyncLazy -import kotlinx.coroutines.test.runTest -import kotlin.test.Test -import kotlin.test.assertEquals - -class ResolveEndpointDiscoveryTest { - @Test - fun testPrecedenceSysProps() = assertEpDiscovery( - sysProps = mapOf("aws.endpointDiscoveryEnabled" to "true"), - env = mapOf("AWS_ENABLE_ENDPOINT_DISCOVERY" to "false"), - config = """ - [${Literals.DEFAULT_PROFILE}] - endpoint_discovery_enabled = false - """.trimIndent(), - serviceRequiresEpDiscovery = false, - expected = true, - ) - - @Test - fun testPrecedenceEnvVars() = assertEpDiscovery( - env = mapOf("AWS_ENABLE_ENDPOINT_DISCOVERY" to "true"), - config = """ - [${Literals.DEFAULT_PROFILE}] - endpoint_discovery_enabled = false - """.trimIndent(), - serviceRequiresEpDiscovery = false, - expected = true, - ) - - @Test - fun testPrecedenceConfig() = assertEpDiscovery( - config = """ - [${Literals.DEFAULT_PROFILE}] - endpoint_discovery_enabled = true - """.trimIndent(), - serviceRequiresEpDiscovery = false, - expected = true, - ) - - @Test - fun testPrecedenceDefault() = assertEpDiscovery( - serviceRequiresEpDiscovery = true, - expected = true, - ) -} - -fun assertEpDiscovery( - sysProps: Map = mapOf(), - env: Map = mapOf(), - config: String = "", - serviceRequiresEpDiscovery: Boolean, - expected: Boolean, -) = runTest { - val provider = TestPlatformProvider(env, sysProps) - val source = AwsConfigurationSource(Literals.DEFAULT_PROFILE, "", "") - - val profile = asyncLazy { - parse(Logger.None, FileType.CONFIGURATION, config) - .toSharedConfig(source) - .activeProfile - } - - val actual = resolveEndpointDiscoveryEnabled(provider, profile, serviceRequiresEpDiscovery) - assertEquals(expected, actual) -} diff --git a/aws-runtime/aws-config/common/test/aws/sdk/kotlin/runtime/region/AwsRegionProviderChainTest.kt b/aws-runtime/aws-config/common/test/aws/sdk/kotlin/runtime/region/AwsRegionProviderChainTest.kt new file mode 100644 index 00000000000..495e715184f --- /dev/null +++ b/aws-runtime/aws-config/common/test/aws/sdk/kotlin/runtime/region/AwsRegionProviderChainTest.kt @@ -0,0 +1,47 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +package aws.sdk.kotlin.runtime.region + +import kotlinx.coroutines.test.runTest +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertFails + +class AwsRegionProviderChainTest { + @Test + fun testNoProviders() { + assertFails("at least one provider") { + RegionProviderChain() + } + } + data class TestProvider(val region: String? = null) : RegionProvider { + override suspend fun getRegion(): String? = region + } + + @Test + fun testChain() = runTest { + val chain = RegionProviderChain( + TestProvider(null), + TestProvider("us-east-1"), + TestProvider("us-east-2"), + ) + + assertEquals("us-east-1", chain.getRegion()) + } + + @Test + fun testChainList() = runTest { + val providers = listOf( + TestProvider(null), + TestProvider("us-east-1"), + TestProvider("us-east-2"), + ) + + val chain = RegionProviderChain(providers) + + assertEquals("us-east-1", chain.getRegion()) + } +} diff --git a/aws-runtime/aws-config/jvm/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChainJVM.kt b/aws-runtime/aws-config/jvm/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChainJVM.kt index 1e5a0922e9a..b581deb1d18 100644 --- a/aws-runtime/aws-config/jvm/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChainJVM.kt +++ b/aws-runtime/aws-config/jvm/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChainJVM.kt @@ -7,8 +7,6 @@ package aws.sdk.kotlin.runtime.region import aws.sdk.kotlin.runtime.config.imds.InstanceMetadataProvider import aws.sdk.kotlin.runtime.config.profile.AwsProfile -import aws.smithy.kotlin.runtime.client.region.RegionProvider -import aws.smithy.kotlin.runtime.client.region.RegionProviderChain import aws.smithy.kotlin.runtime.io.Closeable import aws.smithy.kotlin.runtime.util.LazyAsyncValue import aws.smithy.kotlin.runtime.util.PlatformProvider diff --git a/aws-runtime/aws-config/jvm/src/aws/sdk/kotlin/runtime/region/JvmSystemPropRegionProvider.kt b/aws-runtime/aws-config/jvm/src/aws/sdk/kotlin/runtime/region/JvmSystemPropRegionProvider.kt index e992035cca5..e2be63a151a 100644 --- a/aws-runtime/aws-config/jvm/src/aws/sdk/kotlin/runtime/region/JvmSystemPropRegionProvider.kt +++ b/aws-runtime/aws-config/jvm/src/aws/sdk/kotlin/runtime/region/JvmSystemPropRegionProvider.kt @@ -6,7 +6,6 @@ package aws.sdk.kotlin.runtime.region import aws.sdk.kotlin.runtime.config.AwsSdkSetting -import aws.smithy.kotlin.runtime.client.region.RegionProvider import aws.smithy.kotlin.runtime.util.PlatformProvider import aws.smithy.kotlin.runtime.util.PropertyProvider diff --git a/aws-runtime/aws-config/jvm/test/aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactoryTest.kt b/aws-runtime/aws-config/jvm/test/aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactoryTest.kt index 69a3e491acb..b5df492e23f 100644 --- a/aws-runtime/aws-config/jvm/test/aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactoryTest.kt +++ b/aws-runtime/aws-config/jvm/test/aws/sdk/kotlin/runtime/config/AbstractAwsSdkClientFactoryTest.kt @@ -5,12 +5,11 @@ package aws.sdk.kotlin.runtime.config +import aws.sdk.kotlin.runtime.client.AwsSdkClientConfig import aws.sdk.kotlin.runtime.config.profile.loadAwsSharedConfig import aws.sdk.kotlin.runtime.config.useragent.resolveUserAgentAppId import aws.sdk.kotlin.runtime.config.utils.mockPlatform -import aws.sdk.kotlin.runtime.region.DefaultRegionProviderChain import aws.smithy.kotlin.runtime.client.* -import aws.smithy.kotlin.runtime.client.region.RegionProvider import aws.smithy.kotlin.runtime.retries.StandardRetryStrategy import aws.smithy.kotlin.runtime.util.PlatformProvider import aws.smithy.kotlin.runtime.util.asyncLazy @@ -130,7 +129,6 @@ private interface TestClient : SdkClient { override val clientName: String = builder.clientName override val logMode: LogMode = builder.logMode ?: LogMode.Default override val region: String? = builder.region - override var regionProvider: RegionProvider = builder.regionProvider ?: DefaultRegionProviderChain() override var useFips: Boolean = builder.useFips ?: false override var useDualStack: Boolean = builder.useDualStack ?: false override val applicationId: String? = builder.applicationId @@ -143,7 +141,6 @@ private interface TestClient : SdkClient { override var clientName: String = "Test" override var logMode: LogMode? = LogMode.Default override var region: String? = null - override var regionProvider: RegionProvider? = null override var useFips: Boolean? = null override var useDualStack: Boolean? = null override var applicationId: String? = null diff --git a/aws-runtime/aws-config/native/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChainNative.kt b/aws-runtime/aws-config/native/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChainNative.kt index cd29e860991..18ffb383e84 100644 --- a/aws-runtime/aws-config/native/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChainNative.kt +++ b/aws-runtime/aws-config/native/src/aws/sdk/kotlin/runtime/region/DefaultRegionProviderChainNative.kt @@ -7,7 +7,6 @@ package aws.sdk.kotlin.runtime.region import aws.sdk.kotlin.runtime.config.imds.InstanceMetadataProvider import aws.sdk.kotlin.runtime.config.profile.AwsProfile -import aws.smithy.kotlin.runtime.client.region.RegionProvider import aws.smithy.kotlin.runtime.io.Closeable import aws.smithy.kotlin.runtime.util.LazyAsyncValue import aws.smithy.kotlin.runtime.util.PlatformProvider diff --git a/aws-runtime/aws-core/api/aws-core.api b/aws-runtime/aws-core/api/aws-core.api index 406106edd66..612389b04ac 100644 --- a/aws-runtime/aws-core/api/aws-core.api +++ b/aws-runtime/aws-core/api/aws-core.api @@ -35,3 +35,21 @@ public final class aws/sdk/kotlin/runtime/client/AwsClientOption { public final fun getRegion ()Laws/smithy/kotlin/runtime/collections/AttributeKey; } +public abstract interface class aws/sdk/kotlin/runtime/client/AwsSdkClientConfig : aws/smithy/kotlin/runtime/client/SdkClientConfig { + public abstract fun getApplicationId ()Ljava/lang/String; + public abstract fun getRegion ()Ljava/lang/String; + public abstract fun getUseDualStack ()Z + public abstract fun getUseFips ()Z +} + +public abstract interface class aws/sdk/kotlin/runtime/client/AwsSdkClientConfig$Builder { + public abstract fun getApplicationId ()Ljava/lang/String; + public abstract fun getRegion ()Ljava/lang/String; + public abstract fun getUseDualStack ()Ljava/lang/Boolean; + public abstract fun getUseFips ()Ljava/lang/Boolean; + public abstract fun setApplicationId (Ljava/lang/String;)V + public abstract fun setRegion (Ljava/lang/String;)V + public abstract fun setUseDualStack (Ljava/lang/Boolean;)V + public abstract fun setUseFips (Ljava/lang/Boolean;)V +} + diff --git a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsSdkClientConfig.kt b/aws-runtime/aws-core/common/src/aws/sdk/kotlin/runtime/client/AwsSdkClientConfig.kt similarity index 63% rename from aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsSdkClientConfig.kt rename to aws-runtime/aws-core/common/src/aws/sdk/kotlin/runtime/client/AwsSdkClientConfig.kt index 37281bd716f..b8073748e0e 100644 --- a/aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/config/AwsSdkClientConfig.kt +++ b/aws-runtime/aws-core/common/src/aws/sdk/kotlin/runtime/client/AwsSdkClientConfig.kt @@ -3,10 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package aws.sdk.kotlin.runtime.config +package aws.sdk.kotlin.runtime.client import aws.smithy.kotlin.runtime.client.SdkClientConfig -import aws.smithy.kotlin.runtime.client.region.RegionProvider /** * Base interface all generated AWS SDK Kotlin clients implement @@ -15,27 +14,11 @@ public interface AwsSdkClientConfig : SdkClientConfig { /** * The AWS region (e.g. `us-west-2`) to make requests to. See about AWS - * [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more information. - * When specified, this static region configuration takes precedence over other region resolution methods. - * - * The region resolution order is: - * 1. Static region (if specified) - * 2. Custom region provider (if configured) - * 3. Default region provider chain + * [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more + * information */ public val region: String? - /** - * An optional region provider that determines the AWS region for client operations. When specified, this provider - * takes precedence over the default region provider chain, unless a static region is explicitly configured. - * - * The region resolution order is: - * 1. Static region (if specified) - * 2. Custom region provider (if configured) - * 3. Default region provider chain - */ - public val regionProvider: RegionProvider - /** * Flag to toggle whether to use [FIPS](https://aws.amazon.com/compliance/fips/) endpoints when making requests. * Disabled by default. @@ -66,27 +49,11 @@ public interface AwsSdkClientConfig : SdkClientConfig { public interface Builder { /** * The AWS region (e.g. `us-west-2`) to make requests to. See about AWS - * [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more information. - * When specified, this static region configuration takes precedence over other region resolution methods. - * - * The region resolution order is: - * 1. Static region (if specified) - * 2. Custom region provider (if configured) - * 3. Default region provider chain + * [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more + * information */ public var region: String? - /** - * An optional region provider that determines the AWS region for client operations. When specified, this provider - * takes precedence over the default region provider chain, unless a static region is explicitly configured. - * - * The region resolution order is: - * 1. Static region (if specified) - * 2. Custom region provider (if configured) - * 3. Default region provider chain - */ - public var regionProvider: RegionProvider? - /** * Flag to toggle whether to use [FIPS](https://aws.amazon.com/compliance/fips/) endpoints when making requests. * Disabled by default. diff --git a/aws-runtime/aws-endpoint/api/aws-endpoint.api b/aws-runtime/aws-endpoint/api/aws-endpoint.api index 5920133c895..422fd99f426 100644 --- a/aws-runtime/aws-endpoint/api/aws-endpoint.api +++ b/aws-runtime/aws-endpoint/api/aws-endpoint.api @@ -42,6 +42,12 @@ public final class aws/sdk/kotlin/runtime/endpoint/functions/Partition { public final class aws/sdk/kotlin/runtime/endpoint/functions/PartitionConfig { public fun ()V + public fun (Ljava/lang/String;)V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; diff --git a/aws-runtime/aws-endpoint/common/src/aws/sdk/kotlin/runtime/endpoint/functions/Functions.kt b/aws-runtime/aws-endpoint/common/src/aws/sdk/kotlin/runtime/endpoint/functions/Functions.kt index 6493cc1d4d1..c59fc81c891 100644 --- a/aws-runtime/aws-endpoint/common/src/aws/sdk/kotlin/runtime/endpoint/functions/Functions.kt +++ b/aws-runtime/aws-endpoint/common/src/aws/sdk/kotlin/runtime/endpoint/functions/Functions.kt @@ -9,6 +9,7 @@ import aws.sdk.kotlin.runtime.InternalSdkApi import aws.smithy.kotlin.runtime.client.endpoints.functions.isValidHostLabel import aws.smithy.kotlin.runtime.net.isIpv4 import aws.smithy.kotlin.runtime.net.isIpv6 +import kotlin.jvm.JvmOverloads // the number of top-level components an arn contains (separated by colons) private const val ARN_COMPONENT_COUNT = 6 @@ -69,6 +70,23 @@ public data class PartitionConfig( public val supportsDualStack: Boolean? = null, public val implicitGlobalRegion: String? = null, ) { + @Deprecated("This constructor does not support implicitGlobalRegion") // but is added for backwards compatibility + @JvmOverloads + public constructor ( + name: String? = null, + dnsSuffix: String? = null, + dualStackDnsSuffix: String? = null, + supportsFIPS: Boolean? = null, + supportsDualStack: Boolean? = null, + ) : this( + name, + dnsSuffix, + dualStackDnsSuffix, + supportsFIPS, + supportsDualStack, + null, + ) + public fun mergeWith(other: PartitionConfig): PartitionConfig = PartitionConfig( other.name ?: name, diff --git a/aws-runtime/aws-http/api/aws-http.api b/aws-runtime/aws-http/api/aws-http.api index fea5bdc046c..1b6ced4a550 100644 --- a/aws-runtime/aws-http/api/aws-http.api +++ b/aws-runtime/aws-http/api/aws-http.api @@ -168,6 +168,29 @@ public final class aws/sdk/kotlin/runtime/http/interceptors/IgnoreCompositeFlexi public fun ignoreChecksum (Ljava/lang/String;Laws/smithy/kotlin/runtime/client/ProtocolResponseInterceptorContext;)Z } +public final class aws/sdk/kotlin/runtime/http/interceptors/UnsupportedSigningAlgorithmInterceptor : aws/smithy/kotlin/runtime/client/Interceptor { + public fun ()V + public fun modifyBeforeAttemptCompletion-gIAlu-s (Laws/smithy/kotlin/runtime/client/ResponseInterceptorContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun modifyBeforeCompletion-gIAlu-s (Laws/smithy/kotlin/runtime/client/ResponseInterceptorContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun modifyBeforeDeserialization (Laws/smithy/kotlin/runtime/client/ProtocolResponseInterceptorContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun modifyBeforeRetryLoop (Laws/smithy/kotlin/runtime/client/ProtocolRequestInterceptorContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun modifyBeforeSerialization (Laws/smithy/kotlin/runtime/client/RequestInterceptorContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun modifyBeforeSigning (Laws/smithy/kotlin/runtime/client/ProtocolRequestInterceptorContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun modifyBeforeTransmit (Laws/smithy/kotlin/runtime/client/ProtocolRequestInterceptorContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public fun readAfterAttempt (Laws/smithy/kotlin/runtime/client/ResponseInterceptorContext;)V + public fun readAfterDeserialization (Laws/smithy/kotlin/runtime/client/ResponseInterceptorContext;)V + public fun readAfterExecution (Laws/smithy/kotlin/runtime/client/ResponseInterceptorContext;)V + public fun readAfterSerialization (Laws/smithy/kotlin/runtime/client/ProtocolRequestInterceptorContext;)V + public fun readAfterSigning (Laws/smithy/kotlin/runtime/client/ProtocolRequestInterceptorContext;)V + public fun readAfterTransmit (Laws/smithy/kotlin/runtime/client/ProtocolResponseInterceptorContext;)V + public fun readBeforeAttempt (Laws/smithy/kotlin/runtime/client/ProtocolRequestInterceptorContext;)V + public fun readBeforeDeserialization (Laws/smithy/kotlin/runtime/client/ProtocolResponseInterceptorContext;)V + public fun readBeforeExecution (Laws/smithy/kotlin/runtime/client/RequestInterceptorContext;)V + public fun readBeforeSerialization (Laws/smithy/kotlin/runtime/client/RequestInterceptorContext;)V + public fun readBeforeSigning (Laws/smithy/kotlin/runtime/client/ProtocolRequestInterceptorContext;)V + public fun readBeforeTransmit (Laws/smithy/kotlin/runtime/client/ProtocolRequestInterceptorContext;)V +} + public final class aws/sdk/kotlin/runtime/http/interceptors/businessmetrics/AwsBusinessMetric : java/lang/Enum, aws/smithy/kotlin/runtime/businessmetrics/BusinessMetric { public static final field DDB_MAPPER Laws/sdk/kotlin/runtime/http/interceptors/businessmetrics/AwsBusinessMetric; public static final field S3_EXPRESS_BUCKET Laws/sdk/kotlin/runtime/http/interceptors/businessmetrics/AwsBusinessMetric; diff --git a/aws-runtime/aws-http/common/src/aws/sdk/kotlin/runtime/http/interceptors/UnsupportedSigningAlgorithmInterceptor.kt b/aws-runtime/aws-http/common/src/aws/sdk/kotlin/runtime/http/interceptors/UnsupportedSigningAlgorithmInterceptor.kt new file mode 100644 index 00000000000..d1e70eb706f --- /dev/null +++ b/aws-runtime/aws-http/common/src/aws/sdk/kotlin/runtime/http/interceptors/UnsupportedSigningAlgorithmInterceptor.kt @@ -0,0 +1,37 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.runtime.http.interceptors + +import aws.sdk.kotlin.runtime.InternalSdkApi +import aws.smithy.kotlin.runtime.auth.awssigning.AwsSigningAlgorithm +import aws.smithy.kotlin.runtime.auth.awssigning.UnsupportedSigningAlgorithmException +import aws.smithy.kotlin.runtime.client.ResponseInterceptorContext +import aws.smithy.kotlin.runtime.http.interceptors.HttpInterceptor +import aws.smithy.kotlin.runtime.http.request.HttpRequest +import aws.smithy.kotlin.runtime.http.response.HttpResponse + +// FIXME: Remove this once sigV4a is supported by default AWS signer +/** + * Looks for an unsupported signing algorithm error caused by sigV4a. + * If so it sends users to a section in the AWS SDK for Kotlin documentation on how to fix it. + */ +@InternalSdkApi +@Deprecated("This interceptor is no longer used. It will be removed in the next minor version, v1.5.x.") +public class UnsupportedSigningAlgorithmInterceptor : HttpInterceptor { + override suspend fun modifyBeforeCompletion(context: ResponseInterceptorContext): Result { + context.response.exceptionOrNull()?.let { + if (it is UnsupportedSigningAlgorithmException && it.signingAlgorithm == AwsSigningAlgorithm.SIGV4_ASYMMETRIC) { + return Result.failure( + UnsupportedSigningAlgorithmException( + "SIGV4A support is not yet implemented for the default signer. For more information on how to enable it with the CRT signer, please refer to: https://a.co/3sf8533", + it.signingAlgorithm, + it, + ), + ) + } + } + return super.modifyBeforeCompletion(context) + } +} diff --git a/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/interceptors/UnsupportedSigningAlgorithmInterceptorTest.kt b/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/interceptors/UnsupportedSigningAlgorithmInterceptorTest.kt new file mode 100644 index 00000000000..d1034d48c29 --- /dev/null +++ b/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/interceptors/UnsupportedSigningAlgorithmInterceptorTest.kt @@ -0,0 +1,78 @@ +/* + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ +package aws.sdk.kotlin.runtime.http.interceptors + +import aws.smithy.kotlin.runtime.auth.awssigning.AwsSigningAlgorithm +import aws.smithy.kotlin.runtime.auth.awssigning.UnsupportedSigningAlgorithmException +import aws.smithy.kotlin.runtime.client.ResponseInterceptorContext +import aws.smithy.kotlin.runtime.client.SdkClientOption +import aws.smithy.kotlin.runtime.http.request.HttpRequest +import aws.smithy.kotlin.runtime.http.response.HttpResponse +import aws.smithy.kotlin.runtime.operation.ExecutionContext +import kotlinx.coroutines.test.runTest +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertIs +import kotlin.test.assertTrue + +class UnsupportedSigningAlgorithmInterceptorTest { + @Test + fun testUnsupportedSigningAlgorithmSigV4a() = runTest { + val result = + UnsupportedSigningAlgorithmInterceptor() + .modifyBeforeCompletion( + context( + Result.failure( + UnsupportedSigningAlgorithmException( + "SIGV4A support is not yet implemented for the default signer.", + AwsSigningAlgorithm.SIGV4_ASYMMETRIC, + ), + ), + ), + ) + + val exception = result.exceptionOrNull() + + assertTrue(result.isFailure) + assertIs(exception) + assertEquals(exception.signingAlgorithm, AwsSigningAlgorithm.SIGV4_ASYMMETRIC) + assertEquals( + "SIGV4A support is not yet implemented for the default signer. For more information on how to enable it with the CRT signer, please refer to: https://a.co/3sf8533", + exception.message, + ) + } + + @Test + fun testUnsupportedSigningAlgorithmNotSigV4a() = runTest { + val result = + UnsupportedSigningAlgorithmInterceptor() + .modifyBeforeCompletion( + context( + Result.failure( + UnsupportedSigningAlgorithmException( + "SIGV4 support is not yet implemented for the default signer.", + AwsSigningAlgorithm.SIGV4, + ), + ), + ), + ) + + val exception = result.exceptionOrNull() + + assertTrue(result.isFailure) + assertIs(exception) + assertEquals(exception.signingAlgorithm, AwsSigningAlgorithm.SIGV4) + assertEquals("SIGV4 support is not yet implemented for the default signer.", exception.message) + } +} + +private fun context(response: Result) = + object : ResponseInterceptorContext { + override val executionContext = ExecutionContext.build { attributes[SdkClientOption.OperationName] = "test" } + override val request = Unit + override val response = response + override val protocolRequest = HttpRequest { } + override val protocolResponse = null + } diff --git a/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/AwsRetryHeaderMiddlewareTest.kt b/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/AwsRetryHeaderMiddlewareTest.kt index c34c9e682b0..d07108a70cf 100644 --- a/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/AwsRetryHeaderMiddlewareTest.kt +++ b/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/AwsRetryHeaderMiddlewareTest.kt @@ -21,8 +21,8 @@ class AwsRetryHeaderMiddlewareTest { fun testItSetsRetryHeaders() = runTest { // see retry-header SEP val op = SdkHttpOperation.build { - serializeWith = HttpSerializer.Unit - deserializeWith = HttpDeserializer.Unit + serializer = UnitSerializer + deserializer = UnitDeserializer operationName = "TestOperation" serviceName = "TestService" } diff --git a/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/RecursionDetectionTest.kt b/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/RecursionDetectionTest.kt index 29a81c62cbb..bc957564efa 100644 --- a/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/RecursionDetectionTest.kt +++ b/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/RecursionDetectionTest.kt @@ -21,8 +21,8 @@ import kotlin.test.assertFalse class RecursionDetectionTest { private class TraceHeaderSerializer( private val traceHeader: String, - ) : HttpSerializer.NonStreaming { - override fun serialize(context: ExecutionContext, input: Unit): HttpRequestBuilder { + ) : HttpSerialize { + override suspend fun serialize(context: ExecutionContext, input: Unit): HttpRequestBuilder { val builder = HttpRequestBuilder() builder.headers[HEADER_TRACE_ID] = traceHeader return builder @@ -37,13 +37,8 @@ class RecursionDetectionTest { expectedTraceHeader: String?, ) { val op = SdkHttpOperation.build { - serializeWith = if (existingTraceHeader != null) { - TraceHeaderSerializer(existingTraceHeader) - } else { - HttpSerializer.Unit - } - - deserializeWith = HttpDeserializer.Identity + serializer = if (existingTraceHeader != null) TraceHeaderSerializer(existingTraceHeader) else UnitSerializer + deserializer = IdentityDeserializer operationName = "testOperation" serviceName = "TestService" } diff --git a/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/UserAgentTest.kt b/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/UserAgentTest.kt index 332a5ee3d8d..a2fcd4259cd 100644 --- a/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/UserAgentTest.kt +++ b/aws-runtime/aws-http/common/test/aws/sdk/kotlin/runtime/http/middleware/UserAgentTest.kt @@ -27,8 +27,8 @@ class UserAgentTest { private fun initializeOp(platformProvider: PlatformProvider = TestPlatformProvider()) = SdkHttpOperation.build { - serializeWith = HttpSerializer.Unit - deserializeWith = HttpDeserializer.Identity + serializer = UnitSerializer + deserializer = IdentityDeserializer operationName = "testOperation" serviceName = "TestService" }.apply { diff --git a/aws-runtime/build.gradle.kts b/aws-runtime/build.gradle.kts index 9d5f8a5cfe6..25e90ab283c 100644 --- a/aws-runtime/build.gradle.kts +++ b/aws-runtime/build.gradle.kts @@ -3,8 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ import aws.sdk.kotlin.gradle.dsl.configurePublishing -import aws.sdk.kotlin.gradle.kmp.kotlin -import aws.sdk.kotlin.gradle.kmp.needsKmpConfigured +import aws.sdk.kotlin.gradle.kmp.* import org.jetbrains.kotlin.gradle.dsl.JvmTarget description = "AWS client runtime support for generated service clients" diff --git a/bom/build.gradle.kts b/bom/build.gradle.kts index 9fa6bde1cce..63dc048fc5a 100644 --- a/bom/build.gradle.kts +++ b/bom/build.gradle.kts @@ -7,6 +7,8 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.plugin.KotlinMultiplatformPluginWrapper import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMetadataTarget +import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget +import java.util.* plugins { `maven-publish` @@ -82,6 +84,7 @@ fun createBomConstraintsAndVersionCatalog() { fun Project.artifactId(target: KotlinTarget): String = when (target) { is KotlinMetadataTarget -> name + is KotlinJsTarget -> "$name-js" else -> "$name-${target.targetName.lowercase()}" } diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsRuntimeTypes.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsRuntimeTypes.kt index 56364a006b2..888d060825c 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsRuntimeTypes.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsRuntimeTypes.kt @@ -37,11 +37,8 @@ object AwsRuntimeTypes { object Config : RuntimeTypePackage(AwsKotlinDependency.AWS_CONFIG) { val AbstractAwsSdkClientFactory = symbol("AbstractAwsSdkClientFactory", "config") - val AwsSdkClientConfig = symbol("AwsSdkClientConfig", "config") - object Endpoints : RuntimeTypePackage(AwsKotlinDependency.AWS_CONFIG, "config.endpoints") { val AccountIdEndpointMode = symbol("AccountIdEndpointMode") - val resolveEndpointDiscoveryEnabled = symbol("resolveEndpointDiscoveryEnabled") val resolveEndpointUrl = symbol("resolveEndpointUrl") val resolveAccountId = symbol("resolveAccountId") val resolveAccountIdEndpointMode = symbol("resolveAccountIdEndpointMode") @@ -59,11 +56,6 @@ object AwsRuntimeTypes { val StaticCredentialsProvider = symbol("StaticCredentialsProvider") val manage = symbol("manage", "auth.credentials.internal", isExtension = true) } - - object Region : RuntimeTypePackage(AwsKotlinDependency.AWS_CONFIG, "region") { - val DefaultRegionProviderChain = symbol("DefaultRegionProviderChain") - val resolveRegion = symbol("resolveRegion") - } } object Http : RuntimeTypePackage(AwsKotlinDependency.AWS_HTTP) { diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegration.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegration.kt index 436a6a5aa8e..044fd39bb71 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegration.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegration.kt @@ -24,65 +24,20 @@ class AwsServiceConfigIntegration : KotlinIntegration { val RegionProp: ConfigProperty = ConfigProperty { name = "region" symbol = KotlinTypes.String.toBuilder().nullable().build() - baseClass = AwsRuntimeTypes.Config.AwsSdkClientConfig + baseClass = AwsRuntimeTypes.Core.Client.AwsSdkClientConfig useNestedBuilderBaseClass() documentation = """ The AWS region (e.g. `us-west-2`) to make requests to. See about AWS - [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more information. - When specified, this static region configuration takes precedence over other region resolution methods. - - The region resolution order is: - 1. Static region (if specified) - 2. Custom region provider (if configured) - 3. Default region provider chain + [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more + information """.trimIndent() - - propertyType = ConfigPropertyType.Custom( - render = { prop, writer -> - writer.write( - "override val #1L: #2T? = builder.#1L ?: #3T { builder.regionProvider?.getRegion() ?: #4T() }", - prop.propertyName, - prop.symbol, - RuntimeTypes.KotlinxCoroutines.runBlocking, - AwsRuntimeTypes.Config.Region.resolveRegion, - ) - }, - ) order = -100 } - val RegionProviderProp: ConfigProperty = ConfigProperty { - name = "regionProvider" - symbol = RuntimeTypes.SmithyClient.Region.RegionProvider - baseClass = AwsRuntimeTypes.Config.AwsSdkClientConfig - useNestedBuilderBaseClass() - documentation = """ - An optional region provider that determines the AWS region for client operations. When specified, this provider - takes precedence over the default region provider chain, unless a static region is explicitly configured. - - The region resolution order is: - 1. Static region (if specified) - 2. Custom region provider (if configured) - 3. Default region provider chain - """.trimIndent() - - propertyType = ConfigPropertyType.Custom( - render = { prop, writer -> - writer.write( - "override val #1L: #2T = builder.#1L ?: #3T()", - prop.propertyName, - prop.symbol, - AwsRuntimeTypes.Config.Region.DefaultRegionProviderChain, - ) - }, - ) - order = -99 // After RegionProp - } - val UserAgentAppId: ConfigProperty = ConfigProperty { name = "applicationId" symbol = KotlinTypes.String.asNullable() - baseClass = AwsRuntimeTypes.Config.AwsSdkClientConfig + baseClass = AwsRuntimeTypes.Core.Client.AwsSdkClientConfig useNestedBuilderBaseClass() documentation = """ An optional application specific identifier. @@ -177,7 +132,6 @@ class AwsServiceConfigIntegration : KotlinIntegration { override fun additionalServiceConfigProps(ctx: CodegenContext): List = buildList { add(RegionProp) - add(RegionProviderProp) if (AwsSignatureVersion4.isSupportedAuthentication(ctx.model, ctx.settings.getService(ctx.model))) { add(CredentialsProviderProp) } diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/PresignerGenerator.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/PresignerGenerator.kt index 6bd8647616e..f8c33308a42 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/PresignerGenerator.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/PresignerGenerator.kt @@ -44,6 +44,7 @@ class PresignerGenerator : KotlinIntegration { * signing. */ object UnsignedRequestCustomizationSection : SectionId { + val CodegenContext: SectionKey = SectionKey("CodegenContext") val OperationId: SectionKey = SectionKey("OperationId") val HttpBindingResolver: SectionKey = SectionKey("HttpBindingResolver") val DefaultTimestampFormat: SectionKey = SectionKey("DefaultTimestampFormat") @@ -125,6 +126,7 @@ class PresignerGenerator : KotlinIntegration { val contextMap: Map, Any> = mapOf( UnsignedRequestCustomizationSection.OperationId to op.id.toString(), + UnsignedRequestCustomizationSection.CodegenContext to ctx, UnsignedRequestCustomizationSection.HttpBindingResolver to httpBindingResolver, UnsignedRequestCustomizationSection.DefaultTimestampFormat to defaultTimestampFormat, ) diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/ReplaceServiceExceptionBase.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/ReplaceServiceExceptionBase.kt index 2f063721cf9..6e8cca55967 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/ReplaceServiceExceptionBase.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/ReplaceServiceExceptionBase.kt @@ -27,7 +27,7 @@ class ReplaceServiceExceptionBase : KotlinIntegration { get() = listOf(SectionWriterBinding(ExceptionBaseClassGenerator.ExceptionBaseClassSection, exceptionSectionWriter)) private val exceptionSectionWriter = SectionWriter { writer, _ -> - val ctx = writer.getContextValue(CodegenContext.Key) + val ctx = writer.getContextValue(ExceptionBaseClassGenerator.ExceptionBaseClassSection.CodegenContext) AwsServiceExceptionBaseClassGenerator().render(ctx, writer) } } diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/polly/PollyPresigner.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/polly/PollyPresigner.kt index 7e0239404a3..fb239a71dfd 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/polly/PollyPresigner.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/customization/polly/PollyPresigner.kt @@ -36,7 +36,7 @@ class PollyPresigner : KotlinIntegration { } private val customizeUnsignedRequest = SectionWriter { writer, _ -> - val ctx = writer.getContextValue(CodegenContext.Key) + val ctx = writer.getContextValue(PresignerGenerator.UnsignedRequestCustomizationSection.CodegenContext) val operation = ctx.model.expectShape(writer.getContextValue(PresignerGenerator.UnsignedRequestCustomizationSection.OperationId)) val resolver = writer.getContextValue(PresignerGenerator.UnsignedRequestCustomizationSection.HttpBindingResolver) val defaultTimestampFormat = writer.getContextValue(PresignerGenerator.UnsignedRequestCustomizationSection.DefaultTimestampFormat) diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsEndpointDiscoveryIntegration.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsEndpointDiscoveryIntegration.kt deleted file mode 100644 index 00184869dd2..00000000000 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/AwsEndpointDiscoveryIntegration.kt +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * SPDX-License-Identifier: Apache-2.0 - */ -package aws.sdk.kotlin.codegen.endpoints - -import aws.sdk.kotlin.codegen.AwsRuntimeTypes -import aws.sdk.kotlin.codegen.ServiceClientCompanionObjectWriter -import software.amazon.smithy.kotlin.codegen.KotlinSettings -import software.amazon.smithy.kotlin.codegen.core.CodegenContext -import software.amazon.smithy.kotlin.codegen.core.KotlinDelegator -import software.amazon.smithy.kotlin.codegen.core.getContextValue -import software.amazon.smithy.kotlin.codegen.integration.AppendingSectionWriter -import software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration -import software.amazon.smithy.kotlin.codegen.integration.SectionWriterBinding -import software.amazon.smithy.kotlin.codegen.model.asNullable -import software.amazon.smithy.kotlin.codegen.rendering.endpoints.discovery.DefaultEndpointDiscovererGenerator -import software.amazon.smithy.kotlin.codegen.rendering.endpoints.discovery.EndpointDiscovererInterfaceGenerator -import software.amazon.smithy.kotlin.codegen.rendering.endpoints.discovery.EndpointDiscoveryIntegration -import software.amazon.smithy.kotlin.codegen.rendering.util.ConfigProperty -import software.amazon.smithy.kotlin.codegen.rendering.util.ConfigPropertyType -import software.amazon.smithy.model.Model - -class AwsEndpointDiscoveryIntegration : KotlinIntegration { - override val order: Byte = (EndpointDiscoveryIntegration.ORDER + 1).toByte() // after EndpointDiscoveryIntegration - - override fun additionalServiceConfigProps(ctx: CodegenContext): List { - val endpointDiscoveryOptional = EndpointDiscoveryIntegration.isOptionalFor(ctx) - val interfaceSymbol = EndpointDiscovererInterfaceGenerator.symbolFor(ctx.settings) - return listOf( - ConfigProperty { - name = EndpointDiscoveryIntegration.CLIENT_CONFIG_NAME - symbol = interfaceSymbol.asNullable() - - if (endpointDiscoveryOptional) { - documentation = """ - The endpoint discoverer for this client, if applicable. By default, no endpoint discovery is - provided. To use endpoint discovery, set this to a valid [${interfaceSymbol.name}] instance. - """.trimIndent() - propertyType = ConfigPropertyType.SymbolDefault - } else { - val defaultImplSymbol = DefaultEndpointDiscovererGenerator.symbolFor(ctx.settings) - - documentation = """ - The endpoint discoverer for this client, [${defaultImplSymbol.name}] by default. - """.trimIndent() - propertyType = ConfigPropertyType.Custom( - render = { prop, writer -> - writer.write( - "#1L val #2L: #3T = builder.#2L ?: #4T()", - ctx.settings.api.visibility, - prop.propertyName, - prop.symbol, - defaultImplSymbol, - ) - }, - ) - } - }, - ) - } - - override fun enabledForService(model: Model, settings: KotlinSettings): Boolean = - EndpointDiscoveryIntegration.isEnabledFor(model, settings) - - private val resolveEndpointDiscoverer = AppendingSectionWriter { writer -> - val ctx = writer.getContextValue(CodegenContext.Key) - val endpointDiscoveryOptional = EndpointDiscoveryIntegration.isOptionalFor(ctx) - - writer.write( - "val epDiscoveryEnabled = #T(profile = activeProfile, serviceRequiresEpDiscovery = #L)", - AwsRuntimeTypes.Config.Endpoints.resolveEndpointDiscoveryEnabled, - !endpointDiscoveryOptional, - ) - - writer.write( - "builder.config.#1L = builder.config.#1L ?: if (epDiscoveryEnabled) #2T() else null", - EndpointDiscoveryIntegration.CLIENT_CONFIG_NAME, - DefaultEndpointDiscovererGenerator.symbolFor(ctx.settings), - ) - } - - override val sectionWriters = listOf( - SectionWriterBinding(ServiceClientCompanionObjectWriter.FinalizeEnvironmentalConfig, resolveEndpointDiscoverer), - ) - - override fun writeAdditionalFiles(ctx: CodegenContext, delegator: KotlinDelegator) { - // EndpointDiscoveryIntegration already renders the default endpoint discoverer for services that _require_ EP - // discovery. So we only need to render it for services which _do not require_ EP discovery in order to support - // enabling discovery via environmental config. - if (EndpointDiscoveryIntegration.isOptionalFor(ctx)) { - DefaultEndpointDiscovererGenerator(ctx, delegator).render() - } - } -} diff --git a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt index 7696113d99a..c4c49adc48f 100644 --- a/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt +++ b/codegen/aws-sdk-codegen/src/main/kotlin/aws/sdk/kotlin/codegen/endpoints/BindAwsEndpointBuiltins.kt @@ -38,7 +38,7 @@ class BindAwsEndpointBuiltins : KotlinIntegration { Flag to toggle whether to use [FIPS](https://aws.amazon.com/compliance/fips/) endpoints when making requests. ` Disabled by default. """.trimIndent() - baseClass = AwsRuntimeTypes.Config.AwsSdkClientConfig + baseClass = AwsRuntimeTypes.Core.Client.AwsSdkClientConfig useNestedBuilderBaseClass() } @@ -50,7 +50,7 @@ class BindAwsEndpointBuiltins : KotlinIntegration { See [https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html] for more information. ` Disabled by default. """.trimIndent() - baseClass = AwsRuntimeTypes.Config.AwsSdkClientConfig + baseClass = AwsRuntimeTypes.Core.Client.AwsSdkClientConfig useNestedBuilderBaseClass() } } diff --git a/codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration b/codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration index dd4f34e4913..7883eea4c35 100644 --- a/codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration +++ b/codegen/aws-sdk-codegen/src/main/resources/META-INF/services/software.amazon.smithy.kotlin.codegen.integration.KotlinIntegration @@ -7,7 +7,6 @@ aws.sdk.kotlin.codegen.customization.DefaultMiddleware aws.sdk.kotlin.codegen.customization.AccountIdEndpointBuiltinCustomization aws.sdk.kotlin.codegen.customization.PresignableModelIntegration aws.sdk.kotlin.codegen.customization.BackfillOptionalAuth -aws.sdk.kotlin.codegen.endpoints.AwsEndpointDiscoveryIntegration aws.sdk.kotlin.codegen.endpoints.BindAwsEndpointBuiltins aws.sdk.kotlin.codegen.endpoints.AddAwsEndpointFunctions aws.sdk.kotlin.codegen.PresignerGenerator diff --git a/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegrationTest.kt b/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegrationTest.kt index a35643213eb..9303d312e12 100644 --- a/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegrationTest.kt +++ b/codegen/aws-sdk-codegen/src/test/kotlin/aws/sdk/kotlin/codegen/AwsServiceConfigIntegrationTest.kt @@ -45,8 +45,7 @@ class AwsServiceConfigIntegrationTest { val contents = writer.toString() val expectedProps = """ - override val region: String? = builder.region ?: runBlocking { builder.regionProvider?.getRegion() ?: resolveRegion() } - override val regionProvider: RegionProvider = builder.regionProvider ?: DefaultRegionProviderChain() + override val region: String? = builder.region override val credentialsProvider: CredentialsProvider = builder.credentialsProvider ?: DefaultChainCredentialsProvider(httpClient = httpClient, region = region).manage() """ contents.shouldContainOnlyOnceWithDiff(expectedProps) @@ -54,27 +53,11 @@ class AwsServiceConfigIntegrationTest { val expectedImpl = """ /** * The AWS region (e.g. `us-west-2`) to make requests to. See about AWS - * [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more information. - * When specified, this static region configuration takes precedence over other region resolution methods. - * - * The region resolution order is: - * 1. Static region (if specified) - * 2. Custom region provider (if configured) - * 3. Default region provider chain + * [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more + * information */ override var region: String? = null - /** - * An optional region provider that determines the AWS region for client operations. When specified, this provider - * takes precedence over the default region provider chain, unless a static region is explicitly configured. - * - * The region resolution order is: - * 1. Static region (if specified) - * 2. Custom region provider (if configured) - * 3. Default region provider chain - */ - override var regionProvider: RegionProvider? = null - /** * The AWS credentials provider to use for authenticating requests. If not provided a * [aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider] instance will be used. diff --git a/docs/targets.md b/docs/targets.md index 94a79d0be72..71442406b44 100644 --- a/docs/targets.md +++ b/docs/targets.md @@ -32,7 +32,7 @@ android { targetCompatibility = JavaVersion.VERSION_1_8 isCoreLibraryDesugaringEnabled = true } - compilerOptions { + kotlinOptions { jvmTarget = "1.8" } } @@ -49,4 +49,4 @@ The AWS SDK for Kotlin supports [native image compilation using GraalVM](https:/ Compiling native images is easily accomplished by applying [the GraalVM build plugin](https://github.com/graalvm/native-build-tools) to your application and running `./gradlew nativeCompile`. View [their getting started guide](https://graalvm.github.io/native-build-tools/latest/gradle-plugin-quickstart.html) for further details. -NOTE: [log4j2 does not currently support](https://github.com/apache/logging-log4j2/issues/1539) GraalVM native image compilation, so we recommend selecting a different logger implementation such as Logback. +NOTE: [log4j2 does not currently support](https://github.com/apache/logging-log4j2/issues/1539) GraalVM native image compilation, so we recommend selecting a different logger implementation such as Logback. \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 16f5921a5f9..3353c76b1ba 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,4 +23,4 @@ ksp.useKSP2=false # FIXME Remove after Dokka 2.0 Gradle plugin is stable org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled -org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true +org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 10c75a51ed2..d4b5722245e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,26 +1,26 @@ [versions] -kotlin-version = "2.2.0" -ksp-version = "2.2.0-2.0.2" # Keep in sync with kotlin-version +kotlin-version = "2.1.0" +ksp-version = "2.1.0-1.0.29" # Keep in sync with kotlin-version dokka-version = "2.0.0" aws-kotlin-repo-tools-version = "0.4.32" # libs -coroutines-version = "1.10.2" -atomicfu-version = "0.29.0" -binary-compatibility-validator-version = "0.18.0" +coroutines-version = "1.9.0" +atomicfu-version = "0.25.0" +binary-compatibility-validator-version = "0.16.3" # smithy-kotlin codegen and runtime are versioned separately -smithy-kotlin-runtime-version = "1.5.1" -smithy-kotlin-codegen-version = "0.35.1" +smithy-kotlin-runtime-version = "1.4.23" +smithy-kotlin-codegen-version = "0.34.23" # codegen smithy-version = "1.60.2" # testing ddb-local-version = "2.5.2" -junit-version = "5.13.2" +junit-version = "5.10.5" kotest-version = "5.9.1" kotlinx-benchmark-version = "0.4.12" kotlinx-serialization-version = "1.7.3" diff --git a/hll/build.gradle.kts b/hll/build.gradle.kts index 428db786181..6de33363065 100644 --- a/hll/build.gradle.kts +++ b/hll/build.gradle.kts @@ -4,8 +4,7 @@ */ import aws.sdk.kotlin.gradle.dsl.configurePublishing -import aws.sdk.kotlin.gradle.kmp.kotlin -import aws.sdk.kotlin.gradle.kmp.needsKmpConfigured +import aws.sdk.kotlin.gradle.kmp.* import org.jetbrains.kotlin.gradle.dsl.JvmTarget description = "High-level libraries for the AWS SDK for Kotlin" @@ -91,12 +90,6 @@ subprojects { freeCompilerArgs.add("-Xexpect-actual-classes") } } - - tasks.withType { - sourceCompatibility = JavaVersion.VERSION_1_8.toString() - targetCompatibility = JavaVersion.VERSION_1_8.toString() - } - tasks.withType { compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") diff --git a/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/api/dynamodb-mapper-schema-generator-plugin.api b/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/api/dynamodb-mapper-schema-generator-plugin.api index 05259892c23..0e5ab1eafff 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/api/dynamodb-mapper-schema-generator-plugin.api +++ b/hll/dynamodb-mapper/dynamodb-mapper-schema-generator-plugin/api/dynamodb-mapper-schema-generator-plugin.api @@ -4,6 +4,16 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPlug public fun apply (Lorg/gradle/api/Project;)V } +public final class aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPlugin$apply$1$1$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action { + public fun (Lkotlin/jvm/functions/Function1;)V + public final synthetic fun execute (Ljava/lang/Object;)V +} + +public final class aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPlugin$inlined$sam$i$org_gradle_api_Action$0 : org/gradle/api/Action { + public fun (Lkotlin/jvm/functions/Function1;)V + public final synthetic fun execute (Ljava/lang/Object;)V +} + public class aws/sdk/kotlin/hll/dynamodbmapper/plugins/SchemaGeneratorPluginExtension { public fun ()V public final fun getDestinationPackage ()Laws/sdk/kotlin/hll/dynamodbmapper/codegen/annotations/DestinationPackage; diff --git a/hll/dynamodb-mapper/dynamodb-mapper/api/dynamodb-mapper.api b/hll/dynamodb-mapper/dynamodb-mapper/api/dynamodb-mapper.api index abda34f87ed..6f000c92e6a 100644 --- a/hll/dynamodb-mapper/dynamodb-mapper/api/dynamodb-mapper.api +++ b/hll/dynamodb-mapper/dynamodb-mapper/api/dynamodb-mapper.api @@ -37,7 +37,7 @@ public abstract interface annotation class aws/sdk/kotlin/hll/dynamodbmapper/ann } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/AndExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getOperands ()Ljava/util/List; } @@ -61,7 +61,7 @@ public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/At } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath : aws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getElement ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttrPathElement; public abstract fun getParent ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath; } @@ -94,7 +94,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributeType : } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/BetweenExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr, aws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getMax ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression; public abstract fun getMin ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression; public abstract fun getValue ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression; @@ -124,7 +124,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanFunc : j } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanFuncExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr, aws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getAdditionalOperands ()Ljava/util/List; public abstract fun getFunc ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanFunc; public abstract fun getPath ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath; @@ -154,7 +154,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/Comparator : ja } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/ComparisonExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr, aws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getComparator ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Comparator; public abstract fun getLeft ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression; public abstract fun getRight ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression; @@ -187,117 +187,117 @@ public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/Ex public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/Filter { public abstract fun and (Ljava/util/List;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun and ([Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun and ([Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun attr (Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath; public abstract fun contains (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun contains (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/lang/Object;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun contains (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/lang/Object;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Boolean;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Void;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/List;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Map;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq-FrkygD8 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UInt;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq-X7ZSXPM (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UShort;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq-Zf_Lc9A (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/ULong;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eq-tA8902A (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UByte;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eqSetByteArray (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eqSetNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eqSetString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eqSetUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eqSetUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eqSetULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun eqSetUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Boolean;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Void;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/List;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Map;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq-FrkygD8 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UInt;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq-X7ZSXPM (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UShort;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq-Zf_Lc9A (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/ULong;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eq-tA8902A (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UByte;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eqSetByteArray (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eqSetNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eqSetString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eqSetUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eqSetUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eqSetULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun eqSetUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun exists (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun get (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath; public abstract fun get (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath; public abstract fun getSize (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression; public abstract fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gt-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gt-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gt-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gt-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gt-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gt-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gt-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gt-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gte-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gte-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gte-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun gte-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gte-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gte-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gte-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun gte-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun isBetween (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isBetween (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;[B[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionByteArray (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isBetween (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;[B[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionByteArray (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun isInCollectionExpression (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionList (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionMap (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionSetByteArray (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionSetNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionSetString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionSetUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionSetUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionSetULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionSetUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInCollectionUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInRangeNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInRangeString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInRangeUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInRangeUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInRangeULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun isInRangeUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionList (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionMap (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionSetByteArray (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionSetNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionSetString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionSetUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionSetUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionSetULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionSetUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInCollectionUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/util/Collection;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInRangeNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInRangeString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInRangeUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInRangeUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInRangeULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun isInRangeUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun isOfType (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributeType;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lt-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lt-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lt-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lt-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lt-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lt-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lt-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lt-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lte-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lte-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lte-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun lte-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lte-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lte-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lte-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun lte-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Boolean;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Void;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/List;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Map;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq-FrkygD8 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UInt;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq-X7ZSXPM (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UShort;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq-Zf_Lc9A (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/ULong;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neq-tA8902A (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UByte;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neqSetByteArray (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neqSetNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neqSetString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neqSetUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neqSetUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neqSetULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun neqSetUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Boolean;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/lang/Void;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/List;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Map;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq-FrkygD8 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UInt;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq-X7ZSXPM (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UShort;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq-Zf_Lc9A (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/ULong;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neq-tA8902A (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Lkotlin/UByte;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neqSetByteArray (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neqSetNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neqSetString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neqSetUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neqSetUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neqSetULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun neqSetUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun not (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun notExists (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun or (Ljava/util/List;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun or ([Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun or ([Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; public abstract fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; - public fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; + public abstract fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; } public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/Filter$DefaultImpls { @@ -396,7 +396,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/Filter$DefaultI } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/InExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getSet ()Ljava/util/Collection; public abstract fun getValue ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression; } @@ -420,7 +420,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/KeyFilterKt { } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/Expression { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getValue ()Laws/sdk/kotlin/services/dynamodb/model/AttributeValue; } @@ -451,7 +451,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExprKt { } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/NotExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getOperand ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr; } @@ -464,7 +464,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/NotExprKt { } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/OrExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getOperands ()Ljava/util/List; } @@ -485,7 +485,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/ScalarFunc : ja } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/ScalarFuncExpr : aws/sdk/kotlin/hll/dynamodbmapper/expressions/BooleanExpr { - public fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; + public abstract fun accept (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ExpressionVisitor;)Ljava/lang/Object; public abstract fun getAdditionalOperands ()Ljava/util/List; public abstract fun getFunc ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/ScalarFunc; public abstract fun getPath ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/AttributePath; @@ -509,65 +509,65 @@ public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/So public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyFilter { public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun eq-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun eq-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun eq-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun eq-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun eq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun eq-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun eq-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun eq-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun eq-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; public abstract fun getSortKey ()Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey; public abstract fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gt-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gt-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gt-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gt-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gt-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gt-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gt-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gt-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; public abstract fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gte-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gte-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gte-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun gte-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gte-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gte-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gte-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun gte-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; public abstract fun isBetween (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun isBetween (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun isInRangeNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun isInRangeString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun isInRangeUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun isInRangeUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun isInRangeULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun isInRangeUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun isBetween (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun isInRangeNumber (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun isInRangeString (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun isInRangeUByte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun isInRangeUInt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun isInRangeULong (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun isInRangeUShort (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Lkotlin/ranges/ClosedRange;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; public abstract fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lt-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lt-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lt-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lt-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lt (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lt-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lt-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lt-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lt-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; public abstract fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lte-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lte-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lte-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun lte-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lte (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lte-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lte-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lte-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun lte-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun neq-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun neq-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun neq-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun neq-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/Number;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun neq (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun neq-2TYgG_w (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;J)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun neq-EK-6454 (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun neq-Qn1smSk (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;I)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun neq-i8woANY (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;S)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; public abstract fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Laws/sdk/kotlin/hll/dynamodbmapper/expressions/LiteralExpr;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; - public fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;Ljava/lang/String;)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; + public abstract fun startsWith (Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKey;[B)Laws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyExpr; } public final class aws/sdk/kotlin/hll/dynamodbmapper/expressions/SortKeyFilter$DefaultImpls { @@ -659,10 +659,8 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/items/HeterogeneousItemConv } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/items/ItemConverter : aws/sdk/kotlin/hll/mapping/core/converters/Converter { - public fun convertTo (Ljava/lang/Object;)Laws/sdk/kotlin/hll/dynamodbmapper/model/Item; - public synthetic fun convertTo (Ljava/lang/Object;)Ljava/lang/Object; + public abstract fun convertTo (Ljava/lang/Object;)Laws/sdk/kotlin/hll/dynamodbmapper/model/Item; public abstract fun convertTo (Ljava/lang/Object;Ljava/util/Set;)Laws/sdk/kotlin/hll/dynamodbmapper/model/Item; - public static synthetic fun convertTo$default (Laws/sdk/kotlin/hll/dynamodbmapper/items/ItemConverter;Ljava/lang/Object;Ljava/util/Set;ILjava/lang/Object;)Laws/sdk/kotlin/hll/dynamodbmapper/model/Item; } public final class aws/sdk/kotlin/hll/dynamodbmapper/items/ItemConverter$DefaultImpls { @@ -676,7 +674,7 @@ public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/items/ItemSche } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/items/ItemSchema$CompositeKey : aws/sdk/kotlin/hll/dynamodbmapper/items/ItemSchema$PartitionKey { - public fun getKeyAttributeNames ()Ljava/util/Set; + public abstract fun getKeyAttributeNames ()Ljava/util/Set; public abstract fun getSortKey ()Laws/sdk/kotlin/hll/dynamodbmapper/items/KeySpec; } @@ -685,7 +683,7 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/items/ItemSchema$CompositeK } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/items/ItemSchema$PartitionKey : aws/sdk/kotlin/hll/dynamodbmapper/items/ItemSchema { - public fun getKeyAttributeNames ()Ljava/util/Set; + public abstract fun getKeyAttributeNames ()Ljava/util/Set; public abstract fun getPartitionKey ()Laws/sdk/kotlin/hll/dynamodbmapper/items/KeySpec; } @@ -1202,18 +1200,18 @@ public final class aws/sdk/kotlin/hll/dynamodbmapper/pipeline/HResContextKt { } public abstract interface class aws/sdk/kotlin/hll/dynamodbmapper/pipeline/Interceptor { - public fun modifyBeforeCompletion (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HResContext;)Ljava/lang/Object; - public fun modifyBeforeDeserialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LResContext;)Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/DeserializeInput; - public fun modifyBeforeInvocation (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LReqContext;)Ljava/lang/Object; - public fun modifyBeforeSerialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HReqContext;)Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/SerializeInput; - public fun readAfterDeserialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HResContext;)V - public fun readAfterInitialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HReqContext;)V - public fun readAfterInvocation (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LResContext;)V - public fun readAfterSerialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LReqContext;)V - public fun readBeforeCompletion (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HResContext;)V - public fun readBeforeDeserialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LResContext;)V - public fun readBeforeInvocation (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LReqContext;)V - public fun readBeforeSerialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HReqContext;)V + public abstract fun modifyBeforeCompletion (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HResContext;)Ljava/lang/Object; + public abstract fun modifyBeforeDeserialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LResContext;)Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/DeserializeInput; + public abstract fun modifyBeforeInvocation (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LReqContext;)Ljava/lang/Object; + public abstract fun modifyBeforeSerialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HReqContext;)Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/SerializeInput; + public abstract fun readAfterDeserialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HResContext;)V + public abstract fun readAfterInitialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HReqContext;)V + public abstract fun readAfterInvocation (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LResContext;)V + public abstract fun readAfterSerialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LReqContext;)V + public abstract fun readBeforeCompletion (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HResContext;)V + public abstract fun readBeforeDeserialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LResContext;)V + public abstract fun readBeforeInvocation (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/LReqContext;)V + public abstract fun readBeforeSerialization (Laws/sdk/kotlin/hll/dynamodbmapper/pipeline/HReqContext;)V } public final class aws/sdk/kotlin/hll/dynamodbmapper/pipeline/Interceptor$DefaultImpls { diff --git a/tests/benchmarks/service-benchmarks/build.gradle.kts b/tests/benchmarks/service-benchmarks/build.gradle.kts index 95bfc94f1c5..62cc4457b82 100644 --- a/tests/benchmarks/service-benchmarks/build.gradle.kts +++ b/tests/benchmarks/service-benchmarks/build.gradle.kts @@ -5,7 +5,8 @@ import aws.sdk.kotlin.gradle.dsl.skipPublishing plugins { - id(libs.plugins.kotlin.jvm.get().pluginId) + id(libs.plugins.kotlin.multiplatform.get().pluginId) + alias(libs.plugins.aws.kotlin.repo.tools.kmp) application } @@ -40,7 +41,7 @@ kotlin { optinAnnotations.forEach { languageSettings.optIn(it) } } - main { + jvmMain { dependencies { api(libs.smithy.kotlin.runtime.core) implementation(project(":aws-runtime:aws-core"))