...

Source file src/github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints/endpoints.go

Documentation: github.com/aws/aws-sdk-go-v2/service/sts/internal/endpoints

     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 STS 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:          "sts.{region}.api.aws",
   114  				Protocols:         []string{"https"},
   115  				SignatureVersions: []string{"v4"},
   116  			},
   117  			{
   118  				Variant: endpoints.FIPSVariant,
   119  			}: {
   120  				Hostname:          "sts-fips.{region}.amazonaws.com",
   121  				Protocols:         []string{"https"},
   122  				SignatureVersions: []string{"v4"},
   123  			},
   124  			{
   125  				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
   126  			}: {
   127  				Hostname:          "sts-fips.{region}.api.aws",
   128  				Protocols:         []string{"https"},
   129  				SignatureVersions: []string{"v4"},
   130  			},
   131  			{
   132  				Variant: 0,
   133  			}: {
   134  				Hostname:          "sts.{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  			endpoints.EndpointKey{
   146  				Region: "ap-east-1",
   147  			}: endpoints.Endpoint{},
   148  			endpoints.EndpointKey{
   149  				Region: "ap-northeast-1",
   150  			}: endpoints.Endpoint{},
   151  			endpoints.EndpointKey{
   152  				Region: "ap-northeast-2",
   153  			}: endpoints.Endpoint{},
   154  			endpoints.EndpointKey{
   155  				Region: "ap-northeast-3",
   156  			}: endpoints.Endpoint{},
   157  			endpoints.EndpointKey{
   158  				Region: "ap-south-1",
   159  			}: endpoints.Endpoint{},
   160  			endpoints.EndpointKey{
   161  				Region: "ap-south-2",
   162  			}: endpoints.Endpoint{},
   163  			endpoints.EndpointKey{
   164  				Region: "ap-southeast-1",
   165  			}: endpoints.Endpoint{},
   166  			endpoints.EndpointKey{
   167  				Region: "ap-southeast-2",
   168  			}: endpoints.Endpoint{},
   169  			endpoints.EndpointKey{
   170  				Region: "ap-southeast-3",
   171  			}: endpoints.Endpoint{},
   172  			endpoints.EndpointKey{
   173  				Region: "ap-southeast-4",
   174  			}: endpoints.Endpoint{},
   175  			endpoints.EndpointKey{
   176  				Region: "aws-global",
   177  			}: endpoints.Endpoint{
   178  				Hostname: "sts.amazonaws.com",
   179  				CredentialScope: endpoints.CredentialScope{
   180  					Region: "us-east-1",
   181  				},
   182  			},
   183  			endpoints.EndpointKey{
   184  				Region: "ca-central-1",
   185  			}: endpoints.Endpoint{},
   186  			endpoints.EndpointKey{
   187  				Region: "ca-west-1",
   188  			}: endpoints.Endpoint{},
   189  			endpoints.EndpointKey{
   190  				Region: "eu-central-1",
   191  			}: endpoints.Endpoint{},
   192  			endpoints.EndpointKey{
   193  				Region: "eu-central-2",
   194  			}: endpoints.Endpoint{},
   195  			endpoints.EndpointKey{
   196  				Region: "eu-north-1",
   197  			}: endpoints.Endpoint{},
   198  			endpoints.EndpointKey{
   199  				Region: "eu-south-1",
   200  			}: endpoints.Endpoint{},
   201  			endpoints.EndpointKey{
   202  				Region: "eu-south-2",
   203  			}: endpoints.Endpoint{},
   204  			endpoints.EndpointKey{
   205  				Region: "eu-west-1",
   206  			}: endpoints.Endpoint{},
   207  			endpoints.EndpointKey{
   208  				Region: "eu-west-2",
   209  			}: endpoints.Endpoint{},
   210  			endpoints.EndpointKey{
   211  				Region: "eu-west-3",
   212  			}: endpoints.Endpoint{},
   213  			endpoints.EndpointKey{
   214  				Region: "il-central-1",
   215  			}: endpoints.Endpoint{},
   216  			endpoints.EndpointKey{
   217  				Region: "me-central-1",
   218  			}: endpoints.Endpoint{},
   219  			endpoints.EndpointKey{
   220  				Region: "me-south-1",
   221  			}: endpoints.Endpoint{},
   222  			endpoints.EndpointKey{
   223  				Region: "sa-east-1",
   224  			}: endpoints.Endpoint{},
   225  			endpoints.EndpointKey{
   226  				Region: "us-east-1",
   227  			}: endpoints.Endpoint{},
   228  			endpoints.EndpointKey{
   229  				Region:  "us-east-1",
   230  				Variant: endpoints.FIPSVariant,
   231  			}: {
   232  				Hostname: "sts-fips.us-east-1.amazonaws.com",
   233  			},
   234  			endpoints.EndpointKey{
   235  				Region: "us-east-1-fips",
   236  			}: endpoints.Endpoint{
   237  				Hostname: "sts-fips.us-east-1.amazonaws.com",
   238  				CredentialScope: endpoints.CredentialScope{
   239  					Region: "us-east-1",
   240  				},
   241  				Deprecated: aws.TrueTernary,
   242  			},
   243  			endpoints.EndpointKey{
   244  				Region: "us-east-2",
   245  			}: endpoints.Endpoint{},
   246  			endpoints.EndpointKey{
   247  				Region:  "us-east-2",
   248  				Variant: endpoints.FIPSVariant,
   249  			}: {
   250  				Hostname: "sts-fips.us-east-2.amazonaws.com",
   251  			},
   252  			endpoints.EndpointKey{
   253  				Region: "us-east-2-fips",
   254  			}: endpoints.Endpoint{
   255  				Hostname: "sts-fips.us-east-2.amazonaws.com",
   256  				CredentialScope: endpoints.CredentialScope{
   257  					Region: "us-east-2",
   258  				},
   259  				Deprecated: aws.TrueTernary,
   260  			},
   261  			endpoints.EndpointKey{
   262  				Region: "us-west-1",
   263  			}: endpoints.Endpoint{},
   264  			endpoints.EndpointKey{
   265  				Region:  "us-west-1",
   266  				Variant: endpoints.FIPSVariant,
   267  			}: {
   268  				Hostname: "sts-fips.us-west-1.amazonaws.com",
   269  			},
   270  			endpoints.EndpointKey{
   271  				Region: "us-west-1-fips",
   272  			}: endpoints.Endpoint{
   273  				Hostname: "sts-fips.us-west-1.amazonaws.com",
   274  				CredentialScope: endpoints.CredentialScope{
   275  					Region: "us-west-1",
   276  				},
   277  				Deprecated: aws.TrueTernary,
   278  			},
   279  			endpoints.EndpointKey{
   280  				Region: "us-west-2",
   281  			}: endpoints.Endpoint{},
   282  			endpoints.EndpointKey{
   283  				Region:  "us-west-2",
   284  				Variant: endpoints.FIPSVariant,
   285  			}: {
   286  				Hostname: "sts-fips.us-west-2.amazonaws.com",
   287  			},
   288  			endpoints.EndpointKey{
   289  				Region: "us-west-2-fips",
   290  			}: endpoints.Endpoint{
   291  				Hostname: "sts-fips.us-west-2.amazonaws.com",
   292  				CredentialScope: endpoints.CredentialScope{
   293  					Region: "us-west-2",
   294  				},
   295  				Deprecated: aws.TrueTernary,
   296  			},
   297  		},
   298  	},
   299  	{
   300  		ID: "aws-cn",
   301  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   302  			{
   303  				Variant: endpoints.DualStackVariant,
   304  			}: {
   305  				Hostname:          "sts.{region}.api.amazonwebservices.com.cn",
   306  				Protocols:         []string{"https"},
   307  				SignatureVersions: []string{"v4"},
   308  			},
   309  			{
   310  				Variant: endpoints.FIPSVariant,
   311  			}: {
   312  				Hostname:          "sts-fips.{region}.amazonaws.com.cn",
   313  				Protocols:         []string{"https"},
   314  				SignatureVersions: []string{"v4"},
   315  			},
   316  			{
   317  				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
   318  			}: {
   319  				Hostname:          "sts-fips.{region}.api.amazonwebservices.com.cn",
   320  				Protocols:         []string{"https"},
   321  				SignatureVersions: []string{"v4"},
   322  			},
   323  			{
   324  				Variant: 0,
   325  			}: {
   326  				Hostname:          "sts.{region}.amazonaws.com.cn",
   327  				Protocols:         []string{"https"},
   328  				SignatureVersions: []string{"v4"},
   329  			},
   330  		},
   331  		RegionRegex:    partitionRegexp.AwsCn,
   332  		IsRegionalized: true,
   333  		Endpoints: endpoints.Endpoints{
   334  			endpoints.EndpointKey{
   335  				Region: "cn-north-1",
   336  			}: endpoints.Endpoint{},
   337  			endpoints.EndpointKey{
   338  				Region: "cn-northwest-1",
   339  			}: endpoints.Endpoint{},
   340  		},
   341  	},
   342  	{
   343  		ID: "aws-iso",
   344  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   345  			{
   346  				Variant: endpoints.FIPSVariant,
   347  			}: {
   348  				Hostname:          "sts-fips.{region}.c2s.ic.gov",
   349  				Protocols:         []string{"https"},
   350  				SignatureVersions: []string{"v4"},
   351  			},
   352  			{
   353  				Variant: 0,
   354  			}: {
   355  				Hostname:          "sts.{region}.c2s.ic.gov",
   356  				Protocols:         []string{"https"},
   357  				SignatureVersions: []string{"v4"},
   358  			},
   359  		},
   360  		RegionRegex:    partitionRegexp.AwsIso,
   361  		IsRegionalized: true,
   362  		Endpoints: endpoints.Endpoints{
   363  			endpoints.EndpointKey{
   364  				Region: "us-iso-east-1",
   365  			}: endpoints.Endpoint{},
   366  			endpoints.EndpointKey{
   367  				Region: "us-iso-west-1",
   368  			}: endpoints.Endpoint{},
   369  		},
   370  	},
   371  	{
   372  		ID: "aws-iso-b",
   373  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   374  			{
   375  				Variant: endpoints.FIPSVariant,
   376  			}: {
   377  				Hostname:          "sts-fips.{region}.sc2s.sgov.gov",
   378  				Protocols:         []string{"https"},
   379  				SignatureVersions: []string{"v4"},
   380  			},
   381  			{
   382  				Variant: 0,
   383  			}: {
   384  				Hostname:          "sts.{region}.sc2s.sgov.gov",
   385  				Protocols:         []string{"https"},
   386  				SignatureVersions: []string{"v4"},
   387  			},
   388  		},
   389  		RegionRegex:    partitionRegexp.AwsIsoB,
   390  		IsRegionalized: true,
   391  		Endpoints: endpoints.Endpoints{
   392  			endpoints.EndpointKey{
   393  				Region: "us-isob-east-1",
   394  			}: endpoints.Endpoint{},
   395  		},
   396  	},
   397  	{
   398  		ID: "aws-iso-e",
   399  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   400  			{
   401  				Variant: endpoints.FIPSVariant,
   402  			}: {
   403  				Hostname:          "sts-fips.{region}.cloud.adc-e.uk",
   404  				Protocols:         []string{"https"},
   405  				SignatureVersions: []string{"v4"},
   406  			},
   407  			{
   408  				Variant: 0,
   409  			}: {
   410  				Hostname:          "sts.{region}.cloud.adc-e.uk",
   411  				Protocols:         []string{"https"},
   412  				SignatureVersions: []string{"v4"},
   413  			},
   414  		},
   415  		RegionRegex:    partitionRegexp.AwsIsoE,
   416  		IsRegionalized: true,
   417  	},
   418  	{
   419  		ID: "aws-iso-f",
   420  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   421  			{
   422  				Variant: endpoints.FIPSVariant,
   423  			}: {
   424  				Hostname:          "sts-fips.{region}.csp.hci.ic.gov",
   425  				Protocols:         []string{"https"},
   426  				SignatureVersions: []string{"v4"},
   427  			},
   428  			{
   429  				Variant: 0,
   430  			}: {
   431  				Hostname:          "sts.{region}.csp.hci.ic.gov",
   432  				Protocols:         []string{"https"},
   433  				SignatureVersions: []string{"v4"},
   434  			},
   435  		},
   436  		RegionRegex:    partitionRegexp.AwsIsoF,
   437  		IsRegionalized: true,
   438  	},
   439  	{
   440  		ID: "aws-us-gov",
   441  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   442  			{
   443  				Variant: endpoints.DualStackVariant,
   444  			}: {
   445  				Hostname:          "sts.{region}.api.aws",
   446  				Protocols:         []string{"https"},
   447  				SignatureVersions: []string{"v4"},
   448  			},
   449  			{
   450  				Variant: endpoints.FIPSVariant,
   451  			}: {
   452  				Hostname:          "sts.{region}.amazonaws.com",
   453  				Protocols:         []string{"https"},
   454  				SignatureVersions: []string{"v4"},
   455  			},
   456  			{
   457  				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
   458  			}: {
   459  				Hostname:          "sts-fips.{region}.api.aws",
   460  				Protocols:         []string{"https"},
   461  				SignatureVersions: []string{"v4"},
   462  			},
   463  			{
   464  				Variant: 0,
   465  			}: {
   466  				Hostname:          "sts.{region}.amazonaws.com",
   467  				Protocols:         []string{"https"},
   468  				SignatureVersions: []string{"v4"},
   469  			},
   470  		},
   471  		RegionRegex:    partitionRegexp.AwsUsGov,
   472  		IsRegionalized: true,
   473  		Endpoints: endpoints.Endpoints{
   474  			endpoints.EndpointKey{
   475  				Region: "us-gov-east-1",
   476  			}: endpoints.Endpoint{},
   477  			endpoints.EndpointKey{
   478  				Region:  "us-gov-east-1",
   479  				Variant: endpoints.FIPSVariant,
   480  			}: {
   481  				Hostname: "sts.us-gov-east-1.amazonaws.com",
   482  			},
   483  			endpoints.EndpointKey{
   484  				Region: "us-gov-east-1-fips",
   485  			}: endpoints.Endpoint{
   486  				Hostname: "sts.us-gov-east-1.amazonaws.com",
   487  				CredentialScope: endpoints.CredentialScope{
   488  					Region: "us-gov-east-1",
   489  				},
   490  				Deprecated: aws.TrueTernary,
   491  			},
   492  			endpoints.EndpointKey{
   493  				Region: "us-gov-west-1",
   494  			}: endpoints.Endpoint{},
   495  			endpoints.EndpointKey{
   496  				Region:  "us-gov-west-1",
   497  				Variant: endpoints.FIPSVariant,
   498  			}: {
   499  				Hostname: "sts.us-gov-west-1.amazonaws.com",
   500  			},
   501  			endpoints.EndpointKey{
   502  				Region: "us-gov-west-1-fips",
   503  			}: endpoints.Endpoint{
   504  				Hostname: "sts.us-gov-west-1.amazonaws.com",
   505  				CredentialScope: endpoints.CredentialScope{
   506  					Region: "us-gov-west-1",
   507  				},
   508  				Deprecated: aws.TrueTernary,
   509  			},
   510  		},
   511  	},
   512  }
   513  

View as plain text