...

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

Documentation: github.com/aws/aws-sdk-go-v2/service/ecrpublic/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 ECR PUBLIC 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:          "api.ecr-public.{region}.api.aws",
   114  				Protocols:         []string{"https"},
   115  				SignatureVersions: []string{"v4"},
   116  			},
   117  			{
   118  				Variant: endpoints.FIPSVariant,
   119  			}: {
   120  				Hostname:          "api.ecr-public-fips.{region}.amazonaws.com",
   121  				Protocols:         []string{"https"},
   122  				SignatureVersions: []string{"v4"},
   123  			},
   124  			{
   125  				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
   126  			}: {
   127  				Hostname:          "api.ecr-public-fips.{region}.api.aws",
   128  				Protocols:         []string{"https"},
   129  				SignatureVersions: []string{"v4"},
   130  			},
   131  			{
   132  				Variant: 0,
   133  			}: {
   134  				Hostname:          "api.ecr-public.{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: "us-east-1",
   144  			}: endpoints.Endpoint{
   145  				Hostname: "api.ecr-public.us-east-1.amazonaws.com",
   146  				CredentialScope: endpoints.CredentialScope{
   147  					Region: "us-east-1",
   148  				},
   149  			},
   150  			endpoints.EndpointKey{
   151  				Region: "us-west-2",
   152  			}: endpoints.Endpoint{
   153  				Hostname: "api.ecr-public.us-west-2.amazonaws.com",
   154  				CredentialScope: endpoints.CredentialScope{
   155  					Region: "us-west-2",
   156  				},
   157  			},
   158  		},
   159  	},
   160  	{
   161  		ID: "aws-cn",
   162  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   163  			{
   164  				Variant: endpoints.DualStackVariant,
   165  			}: {
   166  				Hostname:          "api.ecr-public.{region}.api.amazonwebservices.com.cn",
   167  				Protocols:         []string{"https"},
   168  				SignatureVersions: []string{"v4"},
   169  			},
   170  			{
   171  				Variant: endpoints.FIPSVariant,
   172  			}: {
   173  				Hostname:          "api.ecr-public-fips.{region}.amazonaws.com.cn",
   174  				Protocols:         []string{"https"},
   175  				SignatureVersions: []string{"v4"},
   176  			},
   177  			{
   178  				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
   179  			}: {
   180  				Hostname:          "api.ecr-public-fips.{region}.api.amazonwebservices.com.cn",
   181  				Protocols:         []string{"https"},
   182  				SignatureVersions: []string{"v4"},
   183  			},
   184  			{
   185  				Variant: 0,
   186  			}: {
   187  				Hostname:          "api.ecr-public.{region}.amazonaws.com.cn",
   188  				Protocols:         []string{"https"},
   189  				SignatureVersions: []string{"v4"},
   190  			},
   191  		},
   192  		RegionRegex:    partitionRegexp.AwsCn,
   193  		IsRegionalized: true,
   194  	},
   195  	{
   196  		ID: "aws-iso",
   197  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   198  			{
   199  				Variant: endpoints.FIPSVariant,
   200  			}: {
   201  				Hostname:          "api.ecr-public-fips.{region}.c2s.ic.gov",
   202  				Protocols:         []string{"https"},
   203  				SignatureVersions: []string{"v4"},
   204  			},
   205  			{
   206  				Variant: 0,
   207  			}: {
   208  				Hostname:          "api.ecr-public.{region}.c2s.ic.gov",
   209  				Protocols:         []string{"https"},
   210  				SignatureVersions: []string{"v4"},
   211  			},
   212  		},
   213  		RegionRegex:    partitionRegexp.AwsIso,
   214  		IsRegionalized: true,
   215  	},
   216  	{
   217  		ID: "aws-iso-b",
   218  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   219  			{
   220  				Variant: endpoints.FIPSVariant,
   221  			}: {
   222  				Hostname:          "api.ecr-public-fips.{region}.sc2s.sgov.gov",
   223  				Protocols:         []string{"https"},
   224  				SignatureVersions: []string{"v4"},
   225  			},
   226  			{
   227  				Variant: 0,
   228  			}: {
   229  				Hostname:          "api.ecr-public.{region}.sc2s.sgov.gov",
   230  				Protocols:         []string{"https"},
   231  				SignatureVersions: []string{"v4"},
   232  			},
   233  		},
   234  		RegionRegex:    partitionRegexp.AwsIsoB,
   235  		IsRegionalized: true,
   236  	},
   237  	{
   238  		ID: "aws-iso-e",
   239  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   240  			{
   241  				Variant: endpoints.FIPSVariant,
   242  			}: {
   243  				Hostname:          "api.ecr-public-fips.{region}.cloud.adc-e.uk",
   244  				Protocols:         []string{"https"},
   245  				SignatureVersions: []string{"v4"},
   246  			},
   247  			{
   248  				Variant: 0,
   249  			}: {
   250  				Hostname:          "api.ecr-public.{region}.cloud.adc-e.uk",
   251  				Protocols:         []string{"https"},
   252  				SignatureVersions: []string{"v4"},
   253  			},
   254  		},
   255  		RegionRegex:    partitionRegexp.AwsIsoE,
   256  		IsRegionalized: true,
   257  	},
   258  	{
   259  		ID: "aws-iso-f",
   260  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   261  			{
   262  				Variant: endpoints.FIPSVariant,
   263  			}: {
   264  				Hostname:          "api.ecr-public-fips.{region}.csp.hci.ic.gov",
   265  				Protocols:         []string{"https"},
   266  				SignatureVersions: []string{"v4"},
   267  			},
   268  			{
   269  				Variant: 0,
   270  			}: {
   271  				Hostname:          "api.ecr-public.{region}.csp.hci.ic.gov",
   272  				Protocols:         []string{"https"},
   273  				SignatureVersions: []string{"v4"},
   274  			},
   275  		},
   276  		RegionRegex:    partitionRegexp.AwsIsoF,
   277  		IsRegionalized: true,
   278  	},
   279  	{
   280  		ID: "aws-us-gov",
   281  		Defaults: map[endpoints.DefaultKey]endpoints.Endpoint{
   282  			{
   283  				Variant: endpoints.DualStackVariant,
   284  			}: {
   285  				Hostname:          "api.ecr-public.{region}.api.aws",
   286  				Protocols:         []string{"https"},
   287  				SignatureVersions: []string{"v4"},
   288  			},
   289  			{
   290  				Variant: endpoints.FIPSVariant,
   291  			}: {
   292  				Hostname:          "api.ecr-public-fips.{region}.amazonaws.com",
   293  				Protocols:         []string{"https"},
   294  				SignatureVersions: []string{"v4"},
   295  			},
   296  			{
   297  				Variant: endpoints.FIPSVariant | endpoints.DualStackVariant,
   298  			}: {
   299  				Hostname:          "api.ecr-public-fips.{region}.api.aws",
   300  				Protocols:         []string{"https"},
   301  				SignatureVersions: []string{"v4"},
   302  			},
   303  			{
   304  				Variant: 0,
   305  			}: {
   306  				Hostname:          "api.ecr-public.{region}.amazonaws.com",
   307  				Protocols:         []string{"https"},
   308  				SignatureVersions: []string{"v4"},
   309  			},
   310  		},
   311  		RegionRegex:    partitionRegexp.AwsUsGov,
   312  		IsRegionalized: true,
   313  	},
   314  }
   315  

View as plain text