1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package endpoints
4
5import (
6	"github.com/aws/aws-sdk-go-v2/aws"
7	"github.com/aws/aws-sdk-go-v2/internal/endpoints"
8	"regexp"
9)
10
11// Options is the endpoint resolver configuration options
12type Options struct {
13	DisableHTTPS bool
14}
15
16// Resolver PI endpoint resolver
17type Resolver struct {
18	partitions endpoints.Partitions
19}
20
21// ResolveEndpoint resolves the service endpoint for the given region and options
22func (r *Resolver) ResolveEndpoint(region string, options Options) (endpoint aws.Endpoint, err error) {
23	if len(region) == 0 {
24		return endpoint, &aws.MissingRegionError{}
25	}
26
27	opt := endpoints.Options{
28		DisableHTTPS: options.DisableHTTPS,
29	}
30	return r.partitions.ResolveEndpoint(region, opt)
31}
32
33// New returns a new Resolver
34func New() *Resolver {
35	return &Resolver{
36		partitions: defaultPartitions,
37	}
38}
39
40var defaultPartitions = endpoints.Partitions{
41	{
42		ID: "aws",
43		Defaults: endpoints.Endpoint{
44			Hostname:          "pi.{region}.amazonaws.com",
45			Protocols:         []string{"https"},
46			SignatureVersions: []string{"v4"},
47		},
48		RegionRegex:    regexp.MustCompile("^(us|eu|ap|sa|ca|me|af)\\-\\w+\\-\\d+$"),
49		IsRegionalized: true,
50	},
51	{
52		ID: "aws-cn",
53		Defaults: endpoints.Endpoint{
54			Hostname:          "pi.{region}.amazonaws.com.cn",
55			Protocols:         []string{"https"},
56			SignatureVersions: []string{"v4"},
57		},
58		RegionRegex:    regexp.MustCompile("^cn\\-\\w+\\-\\d+$"),
59		IsRegionalized: true,
60	},
61	{
62		ID: "aws-iso",
63		Defaults: endpoints.Endpoint{
64			Hostname:          "pi.{region}.c2s.ic.gov",
65			Protocols:         []string{"https"},
66			SignatureVersions: []string{"v4"},
67		},
68		RegionRegex:    regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"),
69		IsRegionalized: true,
70	},
71	{
72		ID: "aws-iso-b",
73		Defaults: endpoints.Endpoint{
74			Hostname:          "pi.{region}.sc2s.sgov.gov",
75			Protocols:         []string{"https"},
76			SignatureVersions: []string{"v4"},
77		},
78		RegionRegex:    regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"),
79		IsRegionalized: true,
80	},
81	{
82		ID: "aws-us-gov",
83		Defaults: endpoints.Endpoint{
84			Hostname:          "pi.{region}.amazonaws.com",
85			Protocols:         []string{"https"},
86			SignatureVersions: []string{"v4"},
87		},
88		RegionRegex:    regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"),
89		IsRegionalized: true,
90	},
91}
92