
commonMain.aws.sdk.kotlin.services.ecr.endpoints.DefaultEndpointProvider.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.ecr.endpoints
import aws.sdk.kotlin.services.ecr.endpoints.internal.partition
import aws.smithy.kotlin.runtime.client.endpoints.Endpoint
import aws.smithy.kotlin.runtime.client.endpoints.EndpointProviderException
import aws.smithy.kotlin.runtime.net.Url
/**
* The default endpoint provider as specified by the service model.
*/
public class DefaultEndpointProvider: EndpointProvider {
public override suspend fun resolveEndpoint(params: EndpointParameters): Endpoint {
if (
params.endpoint != null
) {
if (
params.useFips == true
) {
throw EndpointProviderException("Invalid Configuration: FIPS and custom endpoint are not supported")
}
if (
params.useDualStack == true
) {
throw EndpointProviderException("Invalid Configuration: Dualstack and custom endpoint are not supported")
}
return Endpoint(
Url.parse(params.endpoint),
)
}
if (
params.region != null
) {
run {
val partitionResult = partition(params.region)
if (
partitionResult != null
) {
if (
params.useFips == true &&
params.useDualStack == true
) {
if (
true == partitionResult?.supportsFIPS &&
true == partitionResult?.supportsDualStack
) {
return Endpoint(
Url.parse("https://api.ecr-fips.${params.region}.${partitionResult?.dualStackDnsSuffix}"),
)
}
throw EndpointProviderException("FIPS and DualStack are enabled, but this partition does not support one or both")
}
if (
params.useFips == true
) {
if (
true == partitionResult?.supportsFIPS
) {
if (
"aws" == partitionResult?.name
) {
return Endpoint(
Url.parse("https://ecr-fips.${params.region}.amazonaws.com"),
)
}
if (
"aws-us-gov" == partitionResult?.name
) {
return Endpoint(
Url.parse("https://ecr-fips.${params.region}.amazonaws.com"),
)
}
return Endpoint(
Url.parse("https://api.ecr-fips.${params.region}.${partitionResult?.dnsSuffix}"),
)
}
throw EndpointProviderException("FIPS is enabled but this partition does not support FIPS")
}
if (
params.useDualStack == true
) {
if (
true == partitionResult?.supportsDualStack
) {
return Endpoint(
Url.parse("https://api.ecr.${params.region}.${partitionResult?.dualStackDnsSuffix}"),
)
}
throw EndpointProviderException("DualStack is enabled but this partition does not support DualStack")
}
if (
params.region == "af-south-1"
) {
return Endpoint(
Url.parse("https://api.ecr.af-south-1.amazonaws.com"),
)
}
if (
params.region == "ap-east-1"
) {
return Endpoint(
Url.parse("https://api.ecr.ap-east-1.amazonaws.com"),
)
}
if (
params.region == "ap-northeast-1"
) {
return Endpoint(
Url.parse("https://api.ecr.ap-northeast-1.amazonaws.com"),
)
}
if (
params.region == "ap-northeast-2"
) {
return Endpoint(
Url.parse("https://api.ecr.ap-northeast-2.amazonaws.com"),
)
}
if (
params.region == "ap-northeast-3"
) {
return Endpoint(
Url.parse("https://api.ecr.ap-northeast-3.amazonaws.com"),
)
}
if (
params.region == "ap-south-1"
) {
return Endpoint(
Url.parse("https://api.ecr.ap-south-1.amazonaws.com"),
)
}
if (
params.region == "ap-southeast-1"
) {
return Endpoint(
Url.parse("https://api.ecr.ap-southeast-1.amazonaws.com"),
)
}
if (
params.region == "ap-southeast-2"
) {
return Endpoint(
Url.parse("https://api.ecr.ap-southeast-2.amazonaws.com"),
)
}
if (
params.region == "ap-southeast-3"
) {
return Endpoint(
Url.parse("https://api.ecr.ap-southeast-3.amazonaws.com"),
)
}
if (
params.region == "ca-central-1"
) {
return Endpoint(
Url.parse("https://api.ecr.ca-central-1.amazonaws.com"),
)
}
if (
params.region == "eu-central-1"
) {
return Endpoint(
Url.parse("https://api.ecr.eu-central-1.amazonaws.com"),
)
}
if (
params.region == "eu-north-1"
) {
return Endpoint(
Url.parse("https://api.ecr.eu-north-1.amazonaws.com"),
)
}
if (
params.region == "eu-south-1"
) {
return Endpoint(
Url.parse("https://api.ecr.eu-south-1.amazonaws.com"),
)
}
if (
params.region == "eu-west-1"
) {
return Endpoint(
Url.parse("https://api.ecr.eu-west-1.amazonaws.com"),
)
}
if (
params.region == "eu-west-2"
) {
return Endpoint(
Url.parse("https://api.ecr.eu-west-2.amazonaws.com"),
)
}
if (
params.region == "eu-west-3"
) {
return Endpoint(
Url.parse("https://api.ecr.eu-west-3.amazonaws.com"),
)
}
if (
params.region == "me-south-1"
) {
return Endpoint(
Url.parse("https://api.ecr.me-south-1.amazonaws.com"),
)
}
if (
params.region == "sa-east-1"
) {
return Endpoint(
Url.parse("https://api.ecr.sa-east-1.amazonaws.com"),
)
}
if (
params.region == "us-east-1"
) {
return Endpoint(
Url.parse("https://api.ecr.us-east-1.amazonaws.com"),
)
}
if (
params.region == "us-east-2"
) {
return Endpoint(
Url.parse("https://api.ecr.us-east-2.amazonaws.com"),
)
}
if (
params.region == "us-west-1"
) {
return Endpoint(
Url.parse("https://api.ecr.us-west-1.amazonaws.com"),
)
}
if (
params.region == "us-west-2"
) {
return Endpoint(
Url.parse("https://api.ecr.us-west-2.amazonaws.com"),
)
}
if (
params.region == "cn-north-1"
) {
return Endpoint(
Url.parse("https://api.ecr.cn-north-1.amazonaws.com.cn"),
)
}
if (
params.region == "cn-northwest-1"
) {
return Endpoint(
Url.parse("https://api.ecr.cn-northwest-1.amazonaws.com.cn"),
)
}
if (
params.region == "us-gov-east-1"
) {
return Endpoint(
Url.parse("https://api.ecr.us-gov-east-1.amazonaws.com"),
)
}
if (
params.region == "us-gov-west-1"
) {
return Endpoint(
Url.parse("https://api.ecr.us-gov-west-1.amazonaws.com"),
)
}
if (
params.region == "us-iso-east-1"
) {
return Endpoint(
Url.parse("https://api.ecr.us-iso-east-1.c2s.ic.gov"),
)
}
if (
params.region == "us-iso-west-1"
) {
return Endpoint(
Url.parse("https://api.ecr.us-iso-west-1.c2s.ic.gov"),
)
}
if (
params.region == "us-isob-east-1"
) {
return Endpoint(
Url.parse("https://api.ecr.us-isob-east-1.sc2s.sgov.gov"),
)
}
return Endpoint(
Url.parse("https://api.ecr.${params.region}.${partitionResult?.dnsSuffix}"),
)
}
}
}
throw EndpointProviderException("Invalid Configuration: Missing Region")
throw EndpointProviderException("endpoint rules were exhausted without a match")
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy