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 Snowball 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:          "snowball.{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		Endpoints: endpoints.Endpoints{
51			"af-south-1":     endpoints.Endpoint{},
52			"ap-east-1":      endpoints.Endpoint{},
53			"ap-northeast-1": endpoints.Endpoint{},
54			"ap-northeast-2": endpoints.Endpoint{},
55			"ap-south-1":     endpoints.Endpoint{},
56			"ap-southeast-1": endpoints.Endpoint{},
57			"ap-southeast-2": endpoints.Endpoint{},
58			"ca-central-1":   endpoints.Endpoint{},
59			"eu-central-1":   endpoints.Endpoint{},
60			"eu-north-1":     endpoints.Endpoint{},
61			"eu-south-1":     endpoints.Endpoint{},
62			"eu-west-1":      endpoints.Endpoint{},
63			"eu-west-2":      endpoints.Endpoint{},
64			"eu-west-3":      endpoints.Endpoint{},
65			"fips-ap-northeast-1": endpoints.Endpoint{
66				Hostname: "snowball-fips.ap-northeast-1.amazonaws.com",
67				CredentialScope: endpoints.CredentialScope{
68					Region: "ap-northeast-1",
69				},
70			},
71			"fips-ap-northeast-2": endpoints.Endpoint{
72				Hostname: "snowball-fips.ap-northeast-2.amazonaws.com",
73				CredentialScope: endpoints.CredentialScope{
74					Region: "ap-northeast-2",
75				},
76			},
77			"fips-ap-northeast-3": endpoints.Endpoint{
78				Hostname: "snowball-fips.ap-northeast-3.amazonaws.com",
79				CredentialScope: endpoints.CredentialScope{
80					Region: "ap-northeast-3",
81				},
82			},
83			"fips-ap-south-1": endpoints.Endpoint{
84				Hostname: "snowball-fips.ap-south-1.amazonaws.com",
85				CredentialScope: endpoints.CredentialScope{
86					Region: "ap-south-1",
87				},
88			},
89			"fips-ap-southeast-1": endpoints.Endpoint{
90				Hostname: "snowball-fips.ap-southeast-1.amazonaws.com",
91				CredentialScope: endpoints.CredentialScope{
92					Region: "ap-southeast-1",
93				},
94			},
95			"fips-ap-southeast-2": endpoints.Endpoint{
96				Hostname: "snowball-fips.ap-southeast-2.amazonaws.com",
97				CredentialScope: endpoints.CredentialScope{
98					Region: "ap-southeast-2",
99				},
100			},
101			"fips-ca-central-1": endpoints.Endpoint{
102				Hostname: "snowball-fips.ca-central-1.amazonaws.com",
103				CredentialScope: endpoints.CredentialScope{
104					Region: "ca-central-1",
105				},
106			},
107			"fips-eu-central-1": endpoints.Endpoint{
108				Hostname: "snowball-fips.eu-central-1.amazonaws.com",
109				CredentialScope: endpoints.CredentialScope{
110					Region: "eu-central-1",
111				},
112			},
113			"fips-eu-west-1": endpoints.Endpoint{
114				Hostname: "snowball-fips.eu-west-1.amazonaws.com",
115				CredentialScope: endpoints.CredentialScope{
116					Region: "eu-west-1",
117				},
118			},
119			"fips-eu-west-2": endpoints.Endpoint{
120				Hostname: "snowball-fips.eu-west-2.amazonaws.com",
121				CredentialScope: endpoints.CredentialScope{
122					Region: "eu-west-2",
123				},
124			},
125			"fips-eu-west-3": endpoints.Endpoint{
126				Hostname: "snowball-fips.eu-west-3.amazonaws.com",
127				CredentialScope: endpoints.CredentialScope{
128					Region: "eu-west-3",
129				},
130			},
131			"fips-sa-east-1": endpoints.Endpoint{
132				Hostname: "snowball-fips.sa-east-1.amazonaws.com",
133				CredentialScope: endpoints.CredentialScope{
134					Region: "sa-east-1",
135				},
136			},
137			"fips-us-east-1": endpoints.Endpoint{
138				Hostname: "snowball-fips.us-east-1.amazonaws.com",
139				CredentialScope: endpoints.CredentialScope{
140					Region: "us-east-1",
141				},
142			},
143			"fips-us-east-2": endpoints.Endpoint{
144				Hostname: "snowball-fips.us-east-2.amazonaws.com",
145				CredentialScope: endpoints.CredentialScope{
146					Region: "us-east-2",
147				},
148			},
149			"fips-us-west-1": endpoints.Endpoint{
150				Hostname: "snowball-fips.us-west-1.amazonaws.com",
151				CredentialScope: endpoints.CredentialScope{
152					Region: "us-west-1",
153				},
154			},
155			"fips-us-west-2": endpoints.Endpoint{
156				Hostname: "snowball-fips.us-west-2.amazonaws.com",
157				CredentialScope: endpoints.CredentialScope{
158					Region: "us-west-2",
159				},
160			},
161			"sa-east-1": endpoints.Endpoint{},
162			"us-east-1": endpoints.Endpoint{},
163			"us-east-2": endpoints.Endpoint{},
164			"us-west-1": endpoints.Endpoint{},
165			"us-west-2": endpoints.Endpoint{},
166		},
167	},
168	{
169		ID: "aws-cn",
170		Defaults: endpoints.Endpoint{
171			Hostname:          "snowball.{region}.amazonaws.com.cn",
172			Protocols:         []string{"https"},
173			SignatureVersions: []string{"v4"},
174		},
175		RegionRegex:    regexp.MustCompile("^cn\\-\\w+\\-\\d+$"),
176		IsRegionalized: true,
177		Endpoints: endpoints.Endpoints{
178			"cn-north-1":     endpoints.Endpoint{},
179			"cn-northwest-1": endpoints.Endpoint{},
180			"fips-cn-north-1": endpoints.Endpoint{
181				Hostname: "snowball-fips.cn-north-1.amazonaws.com.cn",
182				CredentialScope: endpoints.CredentialScope{
183					Region: "cn-north-1",
184				},
185			},
186			"fips-cn-northwest-1": endpoints.Endpoint{
187				Hostname: "snowball-fips.cn-northwest-1.amazonaws.com.cn",
188				CredentialScope: endpoints.CredentialScope{
189					Region: "cn-northwest-1",
190				},
191			},
192		},
193	},
194	{
195		ID: "aws-iso",
196		Defaults: endpoints.Endpoint{
197			Hostname:          "snowball.{region}.c2s.ic.gov",
198			Protocols:         []string{"https"},
199			SignatureVersions: []string{"v4"},
200		},
201		RegionRegex:    regexp.MustCompile("^us\\-iso\\-\\w+\\-\\d+$"),
202		IsRegionalized: true,
203		Endpoints: endpoints.Endpoints{
204			"us-iso-east-1": endpoints.Endpoint{},
205		},
206	},
207	{
208		ID: "aws-iso-b",
209		Defaults: endpoints.Endpoint{
210			Hostname:          "snowball.{region}.sc2s.sgov.gov",
211			Protocols:         []string{"https"},
212			SignatureVersions: []string{"v4"},
213		},
214		RegionRegex:    regexp.MustCompile("^us\\-isob\\-\\w+\\-\\d+$"),
215		IsRegionalized: true,
216		Endpoints: endpoints.Endpoints{
217			"us-isob-east-1": endpoints.Endpoint{},
218		},
219	},
220	{
221		ID: "aws-us-gov",
222		Defaults: endpoints.Endpoint{
223			Hostname:          "snowball.{region}.amazonaws.com",
224			Protocols:         []string{"https"},
225			SignatureVersions: []string{"v4"},
226		},
227		RegionRegex:    regexp.MustCompile("^us\\-gov\\-\\w+\\-\\d+$"),
228		IsRegionalized: true,
229		Endpoints: endpoints.Endpoints{
230			"fips-us-gov-east-1": endpoints.Endpoint{
231				Hostname: "snowball-fips.us-gov-east-1.amazonaws.com",
232				CredentialScope: endpoints.CredentialScope{
233					Region: "us-gov-east-1",
234				},
235			},
236			"fips-us-gov-west-1": endpoints.Endpoint{
237				Hostname: "snowball-fips.us-gov-west-1.amazonaws.com",
238				CredentialScope: endpoints.CredentialScope{
239					Region: "us-gov-west-1",
240				},
241			},
242			"us-gov-east-1": endpoints.Endpoint{},
243			"us-gov-west-1": endpoints.Endpoint{},
244		},
245	},
246}
247