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

commonMain.aws.sdk.kotlin.services.codeguruprofiler.endpoints.internal.ResolveEndpointMiddleware.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.codeguruprofiler.endpoints.internal

import aws.sdk.kotlin.runtime.endpoint.applyToRequest
import aws.sdk.kotlin.runtime.endpoint.authScheme
import aws.sdk.kotlin.services.codeguruprofiler.CodeGuruProfilerClient
import aws.sdk.kotlin.services.codeguruprofiler.endpoints.EndpointParameters
import aws.sdk.kotlin.services.codeguruprofiler.endpoints.EndpointProvider
import aws.smithy.kotlin.runtime.http.endpoints.Endpoint
import aws.smithy.kotlin.runtime.http.endpoints.setResolvedEndpoint
import aws.smithy.kotlin.runtime.http.operation.InlineMiddleware
import aws.smithy.kotlin.runtime.http.operation.SdkHttpOperation

internal class ResolveEndpointMiddleware(
    private val endpointProvider: EndpointProvider,
    private val buildParams: EndpointParameters.Builder.(input: I) -> Unit,
) : InlineMiddleware {
    private lateinit var endpoint: Endpoint

    override fun install(op: SdkHttpOperation) {
        op.execution.initialize.intercept { req, next ->
            val params = EndpointParameters { buildParams(req.subject) }
            endpoint = endpointProvider.resolveEndpoint(params)
            next.call(req)
        }

        op.execution.mutate.intercept { req, next ->
            setResolvedEndpoint(req, endpoint)
            endpoint.authScheme?.applyToRequest(req)
            next.call(req)
        }
    }
}

internal fun EndpointParameters.Builder.bindAwsBuiltins(config: CodeGuruProfilerClient.Config) {
    region = config.region
    useDualStack = config.useDualStack
    useFips = config.useFips
    endpoint = config.endpointUrl?.toString()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy