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