You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
447 lines
12 KiB
447 lines
12 KiB
// Code generated by smithy-go-codegen DO NOT EDIT.
|
|
|
|
package endpoints
|
|
|
|
import (
|
|
"github.com/aws/aws-sdk-go-v2/aws"
|
|
endpoints "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2"
|
|
"github.com/aws/smithy-go/logging"
|
|
"regexp"
|
|
)
|
|
|
|
// Options is the endpoint resolver configuration options
|
|
type Options struct {
|
|
// Logger is a logging implementation that log events should be sent to.
|
|
Logger logging.Logger
|
|
|
|
// LogDeprecated indicates that deprecated endpoints should be logged to the
|
|
// provided logger.
|
|
LogDeprecated bool
|
|
|
|
// ResolvedRegion is used to override the region to be resolved, rather then the
|
|
// using the value passed to the ResolveEndpoint method. This value is used by the
|
|
// SDK to translate regions like fips-us-east-1 or us-east-1-fips to an alternative
|
|
// name. You must not set this value directly in your application.
|
|
ResolvedRegion string
|
|
|
|
// DisableHTTPS informs the resolver to return an endpoint that does not use the
|
|
// HTTPS scheme.
|
|
DisableHTTPS bool
|
|
|
|
// UseDualStackEndpoint specifies the resolver must resolve a dual-stack endpoint.
|
|
UseDualStackEndpoint aws.DualStackEndpointState
|
|
|
|
// UseFIPSEndpoint specifies the resolver must resolve a FIPS endpoint.
|
|
UseFIPSEndpoint aws.FIPSEndpointState
|
|
}
|
|
|
|
func (o Options) GetResolvedRegion() string {
|
|
return o.ResolvedRegion
|
|
}
|
|
|
|
func (o Options) GetDisableHTTPS() bool {
|
|
return o.DisableHTTPS
|
|
}
|
|
|
|
func (o Options) GetUseDualStackEndpoint() aws.DualStackEndpointState {
|
|
return o.UseDualStackEndpoint
|
|
}
|
|
|
|
func (o Options) GetUseFIPSEndpoint() aws.FIPSEndpointState {
|
|
return o.UseFIPSEndpoint
|
|
}
|
|
|
|
func transformToSharedOptions(options Options) endpoints.Options {
|
|
return endpoints.Options{
|
|
Logger: options.Logger,
|
|
LogDeprecated: options.LogDeprecated,
|
|
ResolvedRegion: options.ResolvedRegion,
|
|
DisableHTTPS: options.DisableHTTPS,
|
|
UseDualStackEndpoint: options.UseDualStackEndpoint,
|
|
UseFIPSEndpoint: options.UseFIPSEndpoint,
|
|
}
|
|
}
|
|
|
|
// Resolver SSO OIDC endpoint resolver
|
|
type Resolver struct {
|
|
partitions endpoints.Partitions
|
|
}
|
|
|
|
// ResolveEndpoint resolves the service endpoint for the given region and options
|
|
func (r *Resolver) ResolveEndpoint(region string, options Options) (endpoint aws.Endpoint, err error) {
|
|
if len(region) == 0 {
|
|
return endpoint, &aws.MissingRegionError{}
|
|
}
|
|
|
|
opt := transformToSharedOptions(options)
|
|
return r.partitions.ResolveEndpoint(region, opt)
|
|
}
|
|
|
|
// New returns a new Resolver
|
|
func New() *Resolver {
|
|
return &Resolver{
|
|
partitions: defaultPartitions,
|
|
}
|
|
}
|
|
|
|
var partitionRegexp = struct {
|
|
Aws *regexp.Regexp
|
|
AwsCn *regexp.Regexp
|
|
AwsIso *regexp.Regexp
|
|
AwsIsoB *regexp.Regexp
|
|
AwsUsGov *regexp.Regexp
|
|
}{
|
|
|
|
Aws: regexp.MustCompile("^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$"),
|
|
AwsCn: regexp.MustCompile("^cn\\-\\w+\\-\\d+$"),
|
|
AwsIso: regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"),
|
|
AwsIsoB: regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"),
|
|
AwsUsGov: regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"),
|
|
}
|
|
|
|
var defaultPartitions = endpoints.Partitions{
|
|
{
|
|
ID: "aws",
|
|
Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
|
|
{
|
|
Variant: endpoints.DualStackVariant,
|
|
}: {
|
|
Hostname: "oidc.{region}.api.aws",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: endpoints.FIPSVariant,
|
|
}: {
|
|
Hostname: "oidc-fips.{region}.amazonaws.com",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
|
|
}: {
|
|
Hostname: "oidc-fips.{region}.api.aws",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: 0,
|
|
}: {
|
|
Hostname: "oidc.{region}.amazonaws.com",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
},
|
|
RegionRegex: partitionRegexp.Aws,
|
|
IsRegionalized: true,
|
|
Endpoints: endpoints.Endpoints{
|
|
endpoints.EndpointKey{
|
|
Region: "af-south-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.af-south-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "af-south-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ap-east-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ap-east-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ap-east-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ap-northeast-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ap-northeast-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ap-northeast-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ap-northeast-2",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ap-northeast-2.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ap-northeast-2",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ap-northeast-3",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ap-northeast-3.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ap-northeast-3",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ap-south-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ap-south-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ap-south-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ap-southeast-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ap-southeast-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ap-southeast-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ap-southeast-2",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ap-southeast-2.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ap-southeast-2",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ap-southeast-3",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ap-southeast-3.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ap-southeast-3",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "ca-central-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.ca-central-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "ca-central-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "eu-central-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.eu-central-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "eu-central-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "eu-north-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.eu-north-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "eu-north-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "eu-south-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.eu-south-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "eu-south-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "eu-west-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.eu-west-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "eu-west-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "eu-west-2",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.eu-west-2.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "eu-west-2",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "eu-west-3",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.eu-west-3.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "eu-west-3",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "me-south-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.me-south-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "me-south-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "sa-east-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.sa-east-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "sa-east-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "us-east-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.us-east-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "us-east-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "us-east-2",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.us-east-2.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "us-east-2",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "us-west-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.us-west-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "us-west-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "us-west-2",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.us-west-2.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "us-west-2",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
ID: "aws-cn",
|
|
Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
|
|
{
|
|
Variant: endpoints.DualStackVariant,
|
|
}: {
|
|
Hostname: "oidc.{region}.api.amazonwebservices.com.cn",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: endpoints.FIPSVariant,
|
|
}: {
|
|
Hostname: "oidc-fips.{region}.amazonaws.com.cn",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
|
|
}: {
|
|
Hostname: "oidc-fips.{region}.api.amazonwebservices.com.cn",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: 0,
|
|
}: {
|
|
Hostname: "oidc.{region}.amazonaws.com.cn",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
},
|
|
RegionRegex: partitionRegexp.AwsCn,
|
|
IsRegionalized: true,
|
|
},
|
|
{
|
|
ID: "aws-iso",
|
|
Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
|
|
{
|
|
Variant: endpoints.FIPSVariant,
|
|
}: {
|
|
Hostname: "oidc-fips.{region}.c2s.ic.gov",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: 0,
|
|
}: {
|
|
Hostname: "oidc.{region}.c2s.ic.gov",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
},
|
|
RegionRegex: partitionRegexp.AwsIso,
|
|
IsRegionalized: true,
|
|
},
|
|
{
|
|
ID: "aws-iso-b",
|
|
Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
|
|
{
|
|
Variant: endpoints.FIPSVariant,
|
|
}: {
|
|
Hostname: "oidc-fips.{region}.sc2s.sgov.gov",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: 0,
|
|
}: {
|
|
Hostname: "oidc.{region}.sc2s.sgov.gov",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
},
|
|
RegionRegex: partitionRegexp.AwsIsoB,
|
|
IsRegionalized: true,
|
|
},
|
|
{
|
|
ID: "aws-us-gov",
|
|
Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
|
|
{
|
|
Variant: endpoints.DualStackVariant,
|
|
}: {
|
|
Hostname: "oidc.{region}.api.aws",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: endpoints.FIPSVariant,
|
|
}: {
|
|
Hostname: "oidc-fips.{region}.amazonaws.com",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
|
|
}: {
|
|
Hostname: "oidc-fips.{region}.api.aws",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
{
|
|
Variant: 0,
|
|
}: {
|
|
Hostname: "oidc.{region}.amazonaws.com",
|
|
Protocols: []string{"https"},
|
|
SignatureVersions: []string{"v4"},
|
|
},
|
|
},
|
|
RegionRegex: partitionRegexp.AwsUsGov,
|
|
IsRegionalized: true,
|
|
Endpoints: endpoints.Endpoints{
|
|
endpoints.EndpointKey{
|
|
Region: "us-gov-east-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.us-gov-east-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "us-gov-east-1",
|
|
},
|
|
},
|
|
endpoints.EndpointKey{
|
|
Region: "us-gov-west-1",
|
|
}: endpoints.Endpoint{
|
|
Hostname: "oidc.us-gov-west-1.amazonaws.com",
|
|
CredentialScope: endpoints.CredentialScope{
|
|
Region: "us-gov-west-1",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|