All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.aws.sdk.kotlin.services.s3.auth.DefaultS3AuthSchemeProvider.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.s3.auth

import aws.sdk.kotlin.services.s3.endpoints.S3EndpointProvider
import aws.sdk.kotlin.services.s3.express.sigV4S3Express
import aws.smithy.kotlin.runtime.auth.AuthOption
import aws.smithy.kotlin.runtime.client.endpoints.authOptions
import aws.smithy.kotlin.runtime.http.auth.mergeAuthOptions
import aws.smithy.kotlin.runtime.http.auth.sigV4
import aws.smithy.kotlin.runtime.http.auth.sigV4A

public class DefaultS3AuthSchemeProvider(private val endpointProvider: S3EndpointProvider? = null) : S3AuthSchemeProvider {
    private val operationOverrides = mapOf>(
        "WriteGetObjectResponse" to listOf(
            sigV4(unsignedPayload = true),
        ),
    )
    private val serviceDefaults = listOf(
        sigV4(),
        sigV4A(),
        sigV4S3Express(),
    )
    override suspend fun resolveAuthScheme(params: S3AuthSchemeParameters): List {
        val modeledAuthOptions = operationOverrides.getOrElse(params.operationName) {
            serviceDefaults
        }

        val endpointParams = params.endpointParameters
        val endpointAuthOptions = if (endpointProvider != null && endpointParams != null) {
            val endpoint = endpointProvider.resolveEndpoint(endpointParams)
            endpoint.authOptions
        } else {
            emptyList()
        }

        return mergeAuthOptions(modeledAuthOptions, endpointAuthOptions)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy