src

Go monorepo.
git clone git://code.dwrz.net/src
Log | Files | Refs

endpoints.go (14509B)


      1 // Code generated by smithy-go-codegen DO NOT EDIT.
      2 
      3 package endpoints
      4 
      5 import (
      6 	"github.com/aws/aws-sdk-go-v2/aws"
      7 	endpoints "github.com/aws/aws-sdk-go-v2/internal/endpoints/v2"
      8 	"github.com/aws/smithy-go/logging"
      9 	"regexp"
     10 )
     11 
     12 // Options is the endpoint resolver configuration options
     13 type Options struct {
     14 	// Logger is a logging implementation that log events should be sent to.
     15 	Logger logging.Logger
     16 
     17 	// LogDeprecated indicates that deprecated endpoints should be logged to the
     18 	// provided logger.
     19 	LogDeprecated bool
     20 
     21 	// ResolvedRegion is used to override the region to be resolved, rather then the
     22 	// using the value passed to the ResolveEndpoint method. This value is used by the
     23 	// SDK to translate regions like fips-us-east-1 or us-east-1-fips to an alternative
     24 	// name. You must not set this value directly in your application.
     25 	ResolvedRegion string
     26 
     27 	// DisableHTTPS informs the resolver to return an endpoint that does not use the
     28 	// HTTPS scheme.
     29 	DisableHTTPS bool
     30 
     31 	// UseDualStackEndpoint specifies the resolver must resolve a dual-stack endpoint.
     32 	UseDualStackEndpoint aws.DualStackEndpointState
     33 
     34 	// UseFIPSEndpoint specifies the resolver must resolve a FIPS endpoint.
     35 	UseFIPSEndpoint aws.FIPSEndpointState
     36 }
     37 
     38 func (o Options) GetResolvedRegion() string {
     39 	return o.ResolvedRegion
     40 }
     41 
     42 func (o Options) GetDisableHTTPS() bool {
     43 	return o.DisableHTTPS
     44 }
     45 
     46 func (o Options) GetUseDualStackEndpoint() aws.DualStackEndpointState {
     47 	return o.UseDualStackEndpoint
     48 }
     49 
     50 func (o Options) GetUseFIPSEndpoint() aws.FIPSEndpointState {
     51 	return o.UseFIPSEndpoint
     52 }
     53 
     54 func transformToSharedOptions(options Options) endpoints.Options {
     55 	return endpoints.Options{
     56 		Logger:               options.Logger,
     57 		LogDeprecated:        options.LogDeprecated,
     58 		ResolvedRegion:       options.ResolvedRegion,
     59 		DisableHTTPS:         options.DisableHTTPS,
     60 		UseDualStackEndpoint: options.UseDualStackEndpoint,
     61 		UseFIPSEndpoint:      options.UseFIPSEndpoint,
     62 	}
     63 }
     64 
     65 // Resolver SSO OIDC endpoint resolver
     66 type Resolver struct {
     67 	partitions endpoints.Partitions
     68 }
     69 
     70 // ResolveEndpoint resolves the service endpoint for the given region and options
     71 func (r *Resolver) ResolveEndpoint(region string, options Options) (endpoint aws.Endpoint, err error) {
     72 	if len(region) == 0 {
     73 		return endpoint, &aws.MissingRegionError{}
     74 	}
     75 
     76 	opt := transformToSharedOptions(options)
     77 	return r.partitions.ResolveEndpoint(region, opt)
     78 }
     79 
     80 // New returns a new Resolver
     81 func New() *Resolver {
     82 	return &Resolver{
     83 		partitions: defaultPartitions,
     84 	}
     85 }
     86 
     87 var partitionRegexp = struct {
     88 	Aws      *regexp.Regexp
     89 	AwsCn    *regexp.Regexp
     90 	AwsIso   *regexp.Regexp
     91 	AwsIsoB  *regexp.Regexp
     92 	AwsIsoE  *regexp.Regexp
     93 	AwsIsoF  *regexp.Regexp
     94 	AwsUsGov *regexp.Regexp
     95 }{
     96 
     97 	Aws:      regexp.MustCompile("^(us|eu|ap|sa|ca|me|af|il)\\-\\w+\\-\\d+$"),
     98 	AwsCn:    regexp.MustCompile("^cn\\-\\w+\\-\\d+$"),
     99 	AwsIso:   regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"),
    100 	AwsIsoB:  regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"),
    101 	AwsIsoE:  regexp.MustCompile("^eu\\-isoe\\-\\w+\\-\\d+$"),
    102 	AwsIsoF:  regexp.MustCompile("^us\\-isof\\-\\w+\\-\\d+$"),
    103 	AwsUsGov: regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"),
    104 }
    105 
    106 var defaultPartitions = endpoints.Partitions{
    107 	{
    108 		ID: "aws",
    109 		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
    110 			{
    111 				Variant: endpoints.DualStackVariant,
    112 			}: {
    113 				Hostname:          "oidc.{region}.api.aws",
    114 				Protocols:         []string{"https"},
    115 				SignatureVersions: []string{"v4"},
    116 			},
    117 			{
    118 				Variant: endpoints.FIPSVariant,
    119 			}: {
    120 				Hostname:          "oidc-fips.{region}.amazonaws.com",
    121 				Protocols:         []string{"https"},
    122 				SignatureVersions: []string{"v4"},
    123 			},
    124 			{
    125 				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
    126 			}: {
    127 				Hostname:          "oidc-fips.{region}.api.aws",
    128 				Protocols:         []string{"https"},
    129 				SignatureVersions: []string{"v4"},
    130 			},
    131 			{
    132 				Variant: 0,
    133 			}: {
    134 				Hostname:          "oidc.{region}.amazonaws.com",
    135 				Protocols:         []string{"https"},
    136 				SignatureVersions: []string{"v4"},
    137 			},
    138 		},
    139 		RegionRegex:    partitionRegexp.Aws,
    140 		IsRegionalized: true,
    141 		Endpoints: endpoints.Endpoints{
    142 			endpoints.EndpointKey{
    143 				Region: "af-south-1",
    144 			}: endpoints.Endpoint{
    145 				Hostname: "oidc.af-south-1.amazonaws.com",
    146 				CredentialScope: endpoints.CredentialScope{
    147 					Region: "af-south-1",
    148 				},
    149 			},
    150 			endpoints.EndpointKey{
    151 				Region: "ap-east-1",
    152 			}: endpoints.Endpoint{
    153 				Hostname: "oidc.ap-east-1.amazonaws.com",
    154 				CredentialScope: endpoints.CredentialScope{
    155 					Region: "ap-east-1",
    156 				},
    157 			},
    158 			endpoints.EndpointKey{
    159 				Region: "ap-northeast-1",
    160 			}: endpoints.Endpoint{
    161 				Hostname: "oidc.ap-northeast-1.amazonaws.com",
    162 				CredentialScope: endpoints.CredentialScope{
    163 					Region: "ap-northeast-1",
    164 				},
    165 			},
    166 			endpoints.EndpointKey{
    167 				Region: "ap-northeast-2",
    168 			}: endpoints.Endpoint{
    169 				Hostname: "oidc.ap-northeast-2.amazonaws.com",
    170 				CredentialScope: endpoints.CredentialScope{
    171 					Region: "ap-northeast-2",
    172 				},
    173 			},
    174 			endpoints.EndpointKey{
    175 				Region: "ap-northeast-3",
    176 			}: endpoints.Endpoint{
    177 				Hostname: "oidc.ap-northeast-3.amazonaws.com",
    178 				CredentialScope: endpoints.CredentialScope{
    179 					Region: "ap-northeast-3",
    180 				},
    181 			},
    182 			endpoints.EndpointKey{
    183 				Region: "ap-south-1",
    184 			}: endpoints.Endpoint{
    185 				Hostname: "oidc.ap-south-1.amazonaws.com",
    186 				CredentialScope: endpoints.CredentialScope{
    187 					Region: "ap-south-1",
    188 				},
    189 			},
    190 			endpoints.EndpointKey{
    191 				Region: "ap-southeast-1",
    192 			}: endpoints.Endpoint{
    193 				Hostname: "oidc.ap-southeast-1.amazonaws.com",
    194 				CredentialScope: endpoints.CredentialScope{
    195 					Region: "ap-southeast-1",
    196 				},
    197 			},
    198 			endpoints.EndpointKey{
    199 				Region: "ap-southeast-2",
    200 			}: endpoints.Endpoint{
    201 				Hostname: "oidc.ap-southeast-2.amazonaws.com",
    202 				CredentialScope: endpoints.CredentialScope{
    203 					Region: "ap-southeast-2",
    204 				},
    205 			},
    206 			endpoints.EndpointKey{
    207 				Region: "ap-southeast-3",
    208 			}: endpoints.Endpoint{
    209 				Hostname: "oidc.ap-southeast-3.amazonaws.com",
    210 				CredentialScope: endpoints.CredentialScope{
    211 					Region: "ap-southeast-3",
    212 				},
    213 			},
    214 			endpoints.EndpointKey{
    215 				Region: "ca-central-1",
    216 			}: endpoints.Endpoint{
    217 				Hostname: "oidc.ca-central-1.amazonaws.com",
    218 				CredentialScope: endpoints.CredentialScope{
    219 					Region: "ca-central-1",
    220 				},
    221 			},
    222 			endpoints.EndpointKey{
    223 				Region: "eu-central-1",
    224 			}: endpoints.Endpoint{
    225 				Hostname: "oidc.eu-central-1.amazonaws.com",
    226 				CredentialScope: endpoints.CredentialScope{
    227 					Region: "eu-central-1",
    228 				},
    229 			},
    230 			endpoints.EndpointKey{
    231 				Region: "eu-central-2",
    232 			}: endpoints.Endpoint{
    233 				Hostname: "oidc.eu-central-2.amazonaws.com",
    234 				CredentialScope: endpoints.CredentialScope{
    235 					Region: "eu-central-2",
    236 				},
    237 			},
    238 			endpoints.EndpointKey{
    239 				Region: "eu-north-1",
    240 			}: endpoints.Endpoint{
    241 				Hostname: "oidc.eu-north-1.amazonaws.com",
    242 				CredentialScope: endpoints.CredentialScope{
    243 					Region: "eu-north-1",
    244 				},
    245 			},
    246 			endpoints.EndpointKey{
    247 				Region: "eu-south-1",
    248 			}: endpoints.Endpoint{
    249 				Hostname: "oidc.eu-south-1.amazonaws.com",
    250 				CredentialScope: endpoints.CredentialScope{
    251 					Region: "eu-south-1",
    252 				},
    253 			},
    254 			endpoints.EndpointKey{
    255 				Region: "eu-west-1",
    256 			}: endpoints.Endpoint{
    257 				Hostname: "oidc.eu-west-1.amazonaws.com",
    258 				CredentialScope: endpoints.CredentialScope{
    259 					Region: "eu-west-1",
    260 				},
    261 			},
    262 			endpoints.EndpointKey{
    263 				Region: "eu-west-2",
    264 			}: endpoints.Endpoint{
    265 				Hostname: "oidc.eu-west-2.amazonaws.com",
    266 				CredentialScope: endpoints.CredentialScope{
    267 					Region: "eu-west-2",
    268 				},
    269 			},
    270 			endpoints.EndpointKey{
    271 				Region: "eu-west-3",
    272 			}: endpoints.Endpoint{
    273 				Hostname: "oidc.eu-west-3.amazonaws.com",
    274 				CredentialScope: endpoints.CredentialScope{
    275 					Region: "eu-west-3",
    276 				},
    277 			},
    278 			endpoints.EndpointKey{
    279 				Region: "il-central-1",
    280 			}: endpoints.Endpoint{
    281 				Hostname: "oidc.il-central-1.amazonaws.com",
    282 				CredentialScope: endpoints.CredentialScope{
    283 					Region: "il-central-1",
    284 				},
    285 			},
    286 			endpoints.EndpointKey{
    287 				Region: "me-central-1",
    288 			}: endpoints.Endpoint{
    289 				Hostname: "oidc.me-central-1.amazonaws.com",
    290 				CredentialScope: endpoints.CredentialScope{
    291 					Region: "me-central-1",
    292 				},
    293 			},
    294 			endpoints.EndpointKey{
    295 				Region: "me-south-1",
    296 			}: endpoints.Endpoint{
    297 				Hostname: "oidc.me-south-1.amazonaws.com",
    298 				CredentialScope: endpoints.CredentialScope{
    299 					Region: "me-south-1",
    300 				},
    301 			},
    302 			endpoints.EndpointKey{
    303 				Region: "sa-east-1",
    304 			}: endpoints.Endpoint{
    305 				Hostname: "oidc.sa-east-1.amazonaws.com",
    306 				CredentialScope: endpoints.CredentialScope{
    307 					Region: "sa-east-1",
    308 				},
    309 			},
    310 			endpoints.EndpointKey{
    311 				Region: "us-east-1",
    312 			}: endpoints.Endpoint{
    313 				Hostname: "oidc.us-east-1.amazonaws.com",
    314 				CredentialScope: endpoints.CredentialScope{
    315 					Region: "us-east-1",
    316 				},
    317 			},
    318 			endpoints.EndpointKey{
    319 				Region: "us-east-2",
    320 			}: endpoints.Endpoint{
    321 				Hostname: "oidc.us-east-2.amazonaws.com",
    322 				CredentialScope: endpoints.CredentialScope{
    323 					Region: "us-east-2",
    324 				},
    325 			},
    326 			endpoints.EndpointKey{
    327 				Region: "us-west-1",
    328 			}: endpoints.Endpoint{
    329 				Hostname: "oidc.us-west-1.amazonaws.com",
    330 				CredentialScope: endpoints.CredentialScope{
    331 					Region: "us-west-1",
    332 				},
    333 			},
    334 			endpoints.EndpointKey{
    335 				Region: "us-west-2",
    336 			}: endpoints.Endpoint{
    337 				Hostname: "oidc.us-west-2.amazonaws.com",
    338 				CredentialScope: endpoints.CredentialScope{
    339 					Region: "us-west-2",
    340 				},
    341 			},
    342 		},
    343 	},
    344 	{
    345 		ID: "aws-cn",
    346 		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
    347 			{
    348 				Variant: endpoints.DualStackVariant,
    349 			}: {
    350 				Hostname:          "oidc.{region}.api.amazonwebservices.com.cn",
    351 				Protocols:         []string{"https"},
    352 				SignatureVersions: []string{"v4"},
    353 			},
    354 			{
    355 				Variant: endpoints.FIPSVariant,
    356 			}: {
    357 				Hostname:          "oidc-fips.{region}.amazonaws.com.cn",
    358 				Protocols:         []string{"https"},
    359 				SignatureVersions: []string{"v4"},
    360 			},
    361 			{
    362 				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
    363 			}: {
    364 				Hostname:          "oidc-fips.{region}.api.amazonwebservices.com.cn",
    365 				Protocols:         []string{"https"},
    366 				SignatureVersions: []string{"v4"},
    367 			},
    368 			{
    369 				Variant: 0,
    370 			}: {
    371 				Hostname:          "oidc.{region}.amazonaws.com.cn",
    372 				Protocols:         []string{"https"},
    373 				SignatureVersions: []string{"v4"},
    374 			},
    375 		},
    376 		RegionRegex:    partitionRegexp.AwsCn,
    377 		IsRegionalized: true,
    378 		Endpoints: endpoints.Endpoints{
    379 			endpoints.EndpointKey{
    380 				Region: "cn-north-1",
    381 			}: endpoints.Endpoint{
    382 				Hostname: "oidc.cn-north-1.amazonaws.com.cn",
    383 				CredentialScope: endpoints.CredentialScope{
    384 					Region: "cn-north-1",
    385 				},
    386 			},
    387 			endpoints.EndpointKey{
    388 				Region: "cn-northwest-1",
    389 			}: endpoints.Endpoint{
    390 				Hostname: "oidc.cn-northwest-1.amazonaws.com.cn",
    391 				CredentialScope: endpoints.CredentialScope{
    392 					Region: "cn-northwest-1",
    393 				},
    394 			},
    395 		},
    396 	},
    397 	{
    398 		ID: "aws-iso",
    399 		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
    400 			{
    401 				Variant: endpoints.FIPSVariant,
    402 			}: {
    403 				Hostname:          "oidc-fips.{region}.c2s.ic.gov",
    404 				Protocols:         []string{"https"},
    405 				SignatureVersions: []string{"v4"},
    406 			},
    407 			{
    408 				Variant: 0,
    409 			}: {
    410 				Hostname:          "oidc.{region}.c2s.ic.gov",
    411 				Protocols:         []string{"https"},
    412 				SignatureVersions: []string{"v4"},
    413 			},
    414 		},
    415 		RegionRegex:    partitionRegexp.AwsIso,
    416 		IsRegionalized: true,
    417 	},
    418 	{
    419 		ID: "aws-iso-b",
    420 		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
    421 			{
    422 				Variant: endpoints.FIPSVariant,
    423 			}: {
    424 				Hostname:          "oidc-fips.{region}.sc2s.sgov.gov",
    425 				Protocols:         []string{"https"},
    426 				SignatureVersions: []string{"v4"},
    427 			},
    428 			{
    429 				Variant: 0,
    430 			}: {
    431 				Hostname:          "oidc.{region}.sc2s.sgov.gov",
    432 				Protocols:         []string{"https"},
    433 				SignatureVersions: []string{"v4"},
    434 			},
    435 		},
    436 		RegionRegex:    partitionRegexp.AwsIsoB,
    437 		IsRegionalized: true,
    438 	},
    439 	{
    440 		ID: "aws-iso-e",
    441 		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
    442 			{
    443 				Variant: endpoints.FIPSVariant,
    444 			}: {
    445 				Hostname:          "oidc-fips.{region}.cloud.adc-e.uk",
    446 				Protocols:         []string{"https"},
    447 				SignatureVersions: []string{"v4"},
    448 			},
    449 			{
    450 				Variant: 0,
    451 			}: {
    452 				Hostname:          "oidc.{region}.cloud.adc-e.uk",
    453 				Protocols:         []string{"https"},
    454 				SignatureVersions: []string{"v4"},
    455 			},
    456 		},
    457 		RegionRegex:    partitionRegexp.AwsIsoE,
    458 		IsRegionalized: true,
    459 	},
    460 	{
    461 		ID: "aws-iso-f",
    462 		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
    463 			{
    464 				Variant: endpoints.FIPSVariant,
    465 			}: {
    466 				Hostname:          "oidc-fips.{region}.csp.hci.ic.gov",
    467 				Protocols:         []string{"https"},
    468 				SignatureVersions: []string{"v4"},
    469 			},
    470 			{
    471 				Variant: 0,
    472 			}: {
    473 				Hostname:          "oidc.{region}.csp.hci.ic.gov",
    474 				Protocols:         []string{"https"},
    475 				SignatureVersions: []string{"v4"},
    476 			},
    477 		},
    478 		RegionRegex:    partitionRegexp.AwsIsoF,
    479 		IsRegionalized: true,
    480 	},
    481 	{
    482 		ID: "aws-us-gov",
    483 		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
    484 			{
    485 				Variant: endpoints.DualStackVariant,
    486 			}: {
    487 				Hostname:          "oidc.{region}.api.aws",
    488 				Protocols:         []string{"https"},
    489 				SignatureVersions: []string{"v4"},
    490 			},
    491 			{
    492 				Variant: endpoints.FIPSVariant,
    493 			}: {
    494 				Hostname:          "oidc-fips.{region}.amazonaws.com",
    495 				Protocols:         []string{"https"},
    496 				SignatureVersions: []string{"v4"},
    497 			},
    498 			{
    499 				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
    500 			}: {
    501 				Hostname:          "oidc-fips.{region}.api.aws",
    502 				Protocols:         []string{"https"},
    503 				SignatureVersions: []string{"v4"},
    504 			},
    505 			{
    506 				Variant: 0,
    507 			}: {
    508 				Hostname:          "oidc.{region}.amazonaws.com",
    509 				Protocols:         []string{"https"},
    510 				SignatureVersions: []string{"v4"},
    511 			},
    512 		},
    513 		RegionRegex:    partitionRegexp.AwsUsGov,
    514 		IsRegionalized: true,
    515 		Endpoints: endpoints.Endpoints{
    516 			endpoints.EndpointKey{
    517 				Region: "us-gov-east-1",
    518 			}: endpoints.Endpoint{
    519 				Hostname: "oidc.us-gov-east-1.amazonaws.com",
    520 				CredentialScope: endpoints.CredentialScope{
    521 					Region: "us-gov-east-1",
    522 				},
    523 			},
    524 			endpoints.EndpointKey{
    525 				Region: "us-gov-west-1",
    526 			}: endpoints.Endpoint{
    527 				Hostname: "oidc.us-gov-west-1.amazonaws.com",
    528 				CredentialScope: endpoints.CredentialScope{
    529 					Region: "us-gov-west-1",
    530 				},
    531 			},
    532 		},
    533 	},
    534 }